MySQL SSHトンネルのPHPスクリプト

MySQL SSHトンネルのPHPスクリプト

ローカルPHPスクリプトがリモートサーバーのMySQLサーバーに接続できるようにSSHトンネルを設定する必要があります。

Remote machine: MySQL (127.0.0.1:3306) on Linux (SSH port 44422)
Local machine: Linux (Debian Squeeze)

問題は、次のコマンドを使用して接続できないことです。

ssh -oPort=44422 user@ip_address

PHPスクリプトがリモートMySQLに接続できるようにSSHトンネルをどのように設定しますか?

(PHPスクリプトを介したSSHトンネルなどの他の接続方法がより良いと思われる場合は、お知らせください。)

よろしくお願いします!


編集:SSHには別のユーザー名/パスワードがあり、MySQLには別のユーザー名/パスワードがあることに言及するのを忘れました。

答え1

あなたの質問に正確に答えることはありませんが(h3rrmillerはすでに良い答えを提供しています)、反対することをお勧めします。 SSH接続が中断されると、すべてのmysql接続が失われ、新しいSSH接続を確立したときにのみリセットできます。

mysqlトラフィックを暗号化するためにこれを行う場合:mysqlはSSL接続もサポートしているので、これはより良いオプションです。

答え2

これを行うには、順方向SSHトンネルを作成する必要があります。

ssh user@ip -p 44422 -L3306:127.0.0.1:3306

次に、mysqlクエリを127.0.0.1:3306と指定します。

または、リモートホストとのSSHセッションがすでにある場合は、~CSSHシェルを開いて入力して-L3306:127.0.0.1:3306Enterキーを押してセッションにトンネルを追加できます。

すべてのmysql接続はSSHセッションを維持する必要があるため、SSLなどのより継続的なソリューションを見てみましょう。

関連情報