0

Mac で MySqlWorkbench を使用しており、SSH を使用して複数のリモート サーバーに接続しています。

そのうちの 2 つはローカルです。1 つはローカル VM にあり、もう 1 つは部屋のサーバーにあります。3 つ目は、世界的なぐらつきの他の場所にあります。

喜んでワークベンチを開いて、すぐに 2 つのローカル サーバーに接続できます。

ワークベンチを開いて何時間も何もせずに、それらに接続すると、すべてが機能します。

ワークベンチを開いて、すぐにリモート サーバーに接続できます。すべてが良いです。

しかし、何らかの遅延 (たとえば 1 時間程度) 後に実際のリモート サーバーに接続しようとすると、エラーが発生します。

Your connection attempt failed for user 'root' from your host to server at 127.0.0.1:3306:
Tunnel error: Remote connection to 127.0.0.1:3306 failed: IOError('open SSH channel timeout',)

Please:
1 Check that mysql is running on server 127.0.0.1
2 Check that mysql is running on port 3306 (note: 3306 is the default, but this can be changed)
3 Check the root has rights to connect to 127.0.0.1 from your address (mysql rights define what clients can connect to the server and from which machines) 
4 Make sure you are both providing a password if needed and using the correct password for 127.0.0.1 connecting from the host address you're connecting from

この時点で、アプリを閉じて再度開き、接続を確立すると、すべて問題ありません。

しかし、接続が得られないことに気付くのに30秒ほど待たなければならず、アプリを閉じてから再度開く必要があるのは非常にイライラします.

アプリがクラッシュすることもありますが、十分ではありません。

問題を特定して解消するために私ができることについて何かアドバイスはありますか?

よろしく、

リチャード。

4

1 に答える 1

0

シナリオを正しく理解していれば、接続がしばらくアイドル状態になると、接続が切断されるという問題が発生します。キープアライブ オプションを設定して、数秒ごとにいくつかのパケットを生成し続けるようにしてください。これにより、接続が切断されるのを防ぐことができます。

自分で接続を設定する場合は-o TCPKeepAlive=yes、コマンドラインに追加します。接続を開始するアプリケーションの場合は、次のように設定します。

Host *
TCPKeepAlive yes

あなた~/.ssh/configはトリックをするべきです。

于 2013-10-01T12:19:33.847 に答える