質問

ポート転送を通じてリモート 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) ではありません:ユーザー「ユーザー」@'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