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 エラー 1045 (28000): ユーザー 'user'@'localhost' のアクセスが拒否されました (パスワードを使用: 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 に答える