Иногда: невозможно подключиться к хосту 127.0.0.1 или истекло время ожидания запроса. MySQL через Sequel PRO

Я борюсь с этой проблемой уже больше года, и это действительно вызывает у меня головную боль.

Я часто сталкиваюсь с тем, что не могу подключиться к серверу MySQL через SequelPRO. Если я подключусь к серверу по ssh, Убедитесь, что адрес правильный и у вас есть необходимые привилегии, или попробуйте увеличить время ожидания соединения (в настоящее время 10 секунд). MySQL сказал: Потеряно соединение с сервером MySQL при «чтении начального пакета связи», системная ошибка: 0


ТОЛЬКО решение - перезагрузить сервер. Иногда я перезагружал сервер, но он все равно не работал. После нескольких перезагрузок работает. Но обычно это срабатывает каждый раз.

  • Это происходит на всех моих разных кузнечных серверах (php5 и php7) и происходит с первого дня.
  • Перезапуск сервера mysql (например, sudo service restart mysql) не работает
  • Это происходит в разных сетях (Wi-Fi, локальных и т. Д.)
  • Я могу нормально подключиться с другого Mac с другим ключом SSH (тот же OSX и сборка Sequel Pro). Я даже попытался скопировать свой собственный SSH-ключ на другой компьютер и войти через него. Это тоже отлично работает.
  • У меня случается случайное время, часто, если мой Sequel Pro был открыт, когда мой Mac ложился спать (но не всегда - иногда я могу открыть его через 24 часа и все еще оставаться на связи). Но внезапно я отключился, и когда я снова попытался войти в систему, он увидел следующую ошибку:
  • В некоторых ситуациях я могу снова войти в MySQL через sequel pro, даже если я ничего не делал (т.е. перезагрузите сервер).

Способ подключения:

Хост MySQL: 127.0.0.1 Имя пользователя: что-то Пароль: что-то Порт: 3306 SSH-хост: server-ip Пользователь SSH: что-то Ключ SSH: путь к моему id_rsa Порт SSG: по умолчанию / не задан

Есть идеи?

Моя версия Sequel Pro: v1.1 build 4499 Моя OSX: OS X El Capitan v 10.11

Сервер: Ubuntu 14.04.3 LTS (GNU / Linux 3.13.0-71-generic x86_64)

MySQL: Ver 14.14 Distrib 5.7.10, для Linux (x86_64) с использованием Оболочка EditLine

1
задан 26 January 2016 в 15:24
4 ответа

Упоминание версии 127.0.0.1 звучит так, как будто вы используете SSH туннель в SequelPro.

Смотрите Как надежно держать туннель SSH открытым для решения этой проблемы.

Вы можете быть уверены в этой проблеме, если в следующий раз, когда это произойдет, вы отключите вашу сессию SSH от сервера, подключите его снова, и он работает.

0
ответ дан 4 December 2019 в 06:41

Похоже, у вас проблемы с подключением по SSH или обслуживанием SSH туннеля, об этих ошибках обычно сообщают в /var/log/auth.log. Вероятно, SequelPRO пытается использовать соединение, которое больше не доступно, заглохло.

Вы также можете попытаться вручную настроить SSH туннель: http://www.sequelpro.com/docs/Set_up_an_SSH_Tunnel - если это сработает, то наверняка это ошибка/проблема с SSH соединением SequelPro.

.
0
ответ дан 4 December 2019 в 06:41

Немного выстрела в темноте, но я видел это раньше и сумел отладить.

Хотя это действительно странный Edgecase.

Если ваш источник часов настроен на jiffies, то некоторые процессоры не остаются синхронизированными друг с другом, что приводит к ситуации, когда время на одном процессоре отличается от времени на другом. Разница может составлять всего 1 секунду, чтобы вызвать проблему в mysql.

Вы можете проверить это, сделав:

for i in $(seq 0 $(($(getconf _NPROCESSORS_ONLN)-1))); do taskset -c $i date & done

Каждая строка должна выдавать один и тот же результат, а не секунду. Попробуйте несколько раз, чтобы убедиться, что во время теста вы не пересекли порог в 1 секунду.

Ошибка, с которой я столкнулся, заключалась в том, что один процессор в 1 секунду удаляется от другого. Это привело к тому, что mysql запросил бы время, а затем снова сравнил бы его со следующим новым запросом (который находился на расстоянии -1 секунду). Учитывая, что это неожиданно, он будет недоступен, и mysql подумал, что соединение на четыре миллиарда секунд старше, чем было.

Если это проблема, то вы должны изменить источник часов на хосте с jiffies на tsc, hpet или acpi, и проблема должна исчезнуть.

.
0
ответ дан 4 December 2019 в 06:41

Установите ваш ~/.ssh/config на включение 'ForwardAgent yes'. Также разрешите все в db.* 'user'@'127.0.0.1', идентифицируемые 'password'

0
ответ дан 4 December 2019 в 06:41

Теги

Похожие вопросы