我想通过端口转发连接到我的远程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');

它触发:

标准普尔:不是tty错误1045(28000):拒绝用户访问 'user'@'localhost'(使用密码:否)

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

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

我要把头发拔出来。救命!!!!!

有帮助吗?

解决方案

也许试试这个?:

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top