Я борюсь с этой проблемой уже больше года, и это действительно вызывает у меня головную боль.
Я часто сталкиваюсь с тем, что не могу подключиться к серверу MySQL через SequelPRO. Если я подключусь к серверу по ssh, Убедитесь, что адрес правильный и у вас есть необходимые привилегии, или попробуйте увеличить время ожидания соединения (в настоящее время 10 секунд). MySQL сказал: Потеряно соединение с сервером MySQL при «чтении начального пакета связи», системная ошибка: 0
ТОЛЬКО решение - перезагрузить сервер. Иногда я перезагружал сервер, но он все равно не работал. После нескольких перезагрузок работает. Но обычно это срабатывает каждый раз.
Способ подключения:
Хост 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
Упоминание версии 127.0.0.1 звучит так, как будто вы используете SSH туннель в SequelPro.
Смотрите Как надежно держать туннель SSH открытым для решения этой проблемы.
Вы можете быть уверены в этой проблеме, если в следующий раз, когда это произойдет, вы отключите вашу сессию SSH от сервера, подключите его снова, и он работает.
Похоже, у вас проблемы с подключением по SSH или обслуживанием SSH туннеля, об этих ошибках обычно сообщают в /var/log/auth.log
. Вероятно, SequelPRO пытается использовать соединение, которое больше не доступно, заглохло.
Вы также можете попытаться вручную настроить SSH туннель: http://www.sequelpro.com/docs/Set_up_an_SSH_Tunnel - если это сработает, то наверняка это ошибка/проблема с SSH соединением SequelPro.
.Немного выстрела в темноте, но я видел это раньше и сумел отладить.
Хотя это действительно странный 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
, и проблема должна исчезнуть.
Установите ваш ~/.ssh/config на включение 'ForwardAgent yes'.
Также разрешите все в db.* 'user'@'127.0.0.1', идентифицируемые 'password'