Phpseclib连接MYSQL服务器

Phpseclib连接MYSQL服务器

问题描述:

I want to connect to my remote MySQL server through port forwarding. Unfortunately my hosting provider don't have php_ssh2 installed on the server so I have to work through phpseclib library. So far I am able to do:

1 - Connect to server using Net_SSH2:

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

If I do echo $ssh->exec('ls -la');, it fetches directory listing telling we are connected successfully.

if I run

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

It triggers:

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

3 - If I do echo $ssh->exec('ssh -f -L 3307:localhost:3306 root@xx.xxx.xxx.xxx sleep 60 >> logfile');

It runs forever resulting in no response error from the server.

I am pulling my hair out. HELP!!!!!

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

1 - 使用 Net_SSH2 code>连接到服务器: p>

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

如果我执行 echo $ ssh-> exec('ls -la'); code>,它会获取目录列表 告诉我们已成功连接。 p>

如果我运行 p>

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

它触发: p>

stdin:不是tty ERROR 1045(28000):拒绝用户'n'用户'@'localhost'(使用密码:否) p> blockquote>

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

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

我正在拔头发。 帮助!!!!! p> div>

Maybe try this?:

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

As is it's probably waiting for a password to be entered.