2

アプリケーションが実行されるVLAN内にあるコンピューターから外部のmysqlサーバーに接続しようとしています。リモートサーバーはVLANのメンバーではありません。以下は私がこれまでに試したことです。

私のVLANサーバーからのMysqlポート転送

ssh -L 3306:my-vlan-server-ip:3306 user-at-external-server@external-server-ip

この場合、sshタイムアウトメッセージが表示されます。php mysql_connectから直接実行しようとすると、mysqlエラー#111が発生しますが、my.cnfは次のように編集されています。

#skip-networking
bind-address  =my-vlan-server-ip

私のphpdb接続スクリプト

<?php
$conn=mysql_connect("external-server-ip","user","pass");
if($conn)
{
echo "success";
}
else
{
echo "fail";
}
?>

誰か助けてください。どこが間違っているのか教えてください。ありがとう。

4

1 に答える 1

1

私があなたを正しく理解しているなら、あなたはVLANサーバー(= my-vlan-server-ip)でsshクライアントを実行していますか?

ローカルトンネリング(-L)は基本的に、最初のポートを指定されたアドレスの指定されたポートに転送します。つまり、-L 80:someserver:8080は、ローカルマシンのポート80をsomeserverのポート8080に転送します。 ssh経由でリモートサーバーの3306に接続します。

ssh -L 3306:external-server-ip:3306 user-at-external-server @ external-server-ip(または単に-L 3306:localhost:3306の場合、localhostは接続先のサーバーを参照します。 external-server-ip)

次に、localhost:3306がexternal-server-ip:3306に転送されます。

my-vlan-server-ipで実行されているphpスクリプトで、localhost:3306に接続し、sshによってexternal-server-ipに転送されます...

于 2012-04-18T15:14:38.173 に答える