2013-10-01 5 views
0

Я использую MySqlWorkbench на Mac и подключаюсь к нескольким удаленным серверам с помощью SSH.Как разрешить сбой SSH-соединений?

2 из них являются локальными - один в моей локальной виртуальной машине и один на сервере по всей комнате. Третий - в другом месте по всему миру.

Я могу с радостью открыть верстак и сразу же подключиться к моим локальным серверам.

Я могу открыть верстак и ничего не делать в течение нескольких часов, а затем подключиться к ним, и все еще работает.

Я могу открыть верстак и немедленно подключиться к удаленному серверу. Все хорошо.

Но если я попытаюсь подключиться после какой-либо задержки (скажем, часа или около того) на настоящий удаленный сервер, я получаю сообщение об ошибке.

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 секунд или около того, чтобы понять, что я не собираюсь подключаться, а затем закрыть приложение, а затем снова открыть его.

Иногда приложение падает, но не достаточно часто.

Любые советы о том, что я могу сделать, чтобы помочь выявить проблему и устранить ее?

С уважением,

Richard.

+0

Не решение для тайм-аута, но для более удобного повторного подключения используйте Menu -> Query -> Reconnect to server. –

ответ

0

Если я правильно понял сценарий, у вас возникли проблемы с подключением, если он простаивает какое-то время. Попробуйте установить параметр keepalive, чтобы поддерживать несколько пакетов каждые пару секунд. Это должно помешать вашему соединению умирать.

Если вы настраиваете соединение самостоятельно, добавьте -o TCPKeepAlive=yes в командную строку. Если это какое-то приложение, начиная соединение для вас, то установка:

Host * 
TCPKeepAlive yes 

в вашем ~/.ssh/config должны сделать трюк.

Смежные вопросы