1

我想通过端口转发连接到我的远程 MySQL 服务器。不幸的是,我的托管服务提供商没有php_ssh2安装在服务器上,所以我必须通过phpseclib库工作。到目前为止,我能够做到:

1 - 使用连接到服务器Net_SSH2

$ssh = new Net_SSH2('xx.xxx.xx.xx');  
 if (!$ssh->login('user', 'password')) {  
    exit('Login Failed');  
 }  

如果我这样做echo $ssh->exec('ls -la');了,它会获取目录列表,告诉我们连接成功。

如果我跑

2 -echo $ssh->exec('echo "select * from table where company_id=\"15\";" | mysql');

它触发:

stdin: is not a tty ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: NO)

3 - 如果我这样做echo $ssh->exec('ssh -f -L 3307:localhost:3306 root@xx.xxx.xxx.xxx sleep 60 >> logfile');

它永远运行,导致服务器没有响应错误。

我正在拔头发。帮助!!!!!

4

1 回答 1

1

也许试试这个?:

echo $ssh->exec('echo "select * from table where company_id=\"15\";" | mysql -u username -password=password database');

因为它可能正在等待输入密码。

于 2011-05-18T12:30:48.473 回答