Потеряно соединение с сервером MySQL при чтении начального пакета связи, системная ошибка: 0 - PullRequest
112 голосов
/ 22 апреля 2011

Я получаю сообщение об ошибке:

"Потеряно соединение с сервером MySQL при чтении исходного пакета связи, системная ошибка: 0"

во время подключенияmy db.

Если я использую localhost, все работает нормально.Но когда я использую свой действующий IP-адрес, как показано ниже, появляется ошибка:

mysql_connect("202.131.xxx.106:xxxx", "xxxx", "xxxxx") or die(mysql_error());

Ответы [ 26 ]

2 голосов
/ 16 октября 2014

Я столкнулся с точно такой же ошибкой при подключении из MySQL Workbench. Вот как я это исправил. В моем файле конфигурации /etc/my.cnf значение привязанного адреса было установлено на IP-адрес сервера. Это должно было быть сделано для настройки репликации. Во всяком случае, я решил это, выполнив две вещи:

  1. создать пользователя, которого можно использовать для подключения с адреса привязки в файле my.cnf

например.

CREATE USER 'username'@'bind-address' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON schemaname.* TO 'username'@'bind-address';
FLUSH PRIVILEGES;
  1. изменить значение имени хоста MySQL в сведениях о соединении в рабочей среде MySQL, чтобы оно соответствовало адресу привязки
2 голосов
/ 11 ноября 2017

Для меня был найден файл конфигурации "/etc/mysql/mysql.conf.d/mysqld.cnf", закомментировавший адрес привязки, добился цели.

Как мы можем видеть здесь: Вместо пропуска сети по умолчанию теперь прослушивается только локальный хост, который более совместим и не менее безопасен.

2 голосов
/ 14 января 2015

в моем случае у меня было ВСЕ: ВСЕ в hosts.deny.Изменив это на ВСЕ: PARANOID решил мою проблему при подключении через ssh

1 голос
/ 04 января 2015

У меня настройка bind-address = 0.0.0.0 в mysql/my.cnf сработала.Затем он в основном слушает все адреса (но все равно один порт).

И не забудьте перезагрузить сервер: systemctl restart mysql

1 голос
/ 13 марта 2017

Проблема была довольно глупой для меня.

Раньше я сталкивался с такой же проблемой на машине с AWS EC2 Ubuntu (на данный момент MariaDB установлена ​​локально), поэтому я попытался сделать SSH-туннелирование и имелта же проблема.Поэтому я попытался использовать ssh туннель через терминал:

ssh -L13306:127.0.0.1:3306 root@ip.address -i my/private/key.pem

И он сказал мне следующее:

Пожалуйста, войдите как пользователь "ubuntu", а не как пользователь "root".

Я изменил пользователя ssh с root на ubuntu, точно так же, как моя конфигурация ssh, и он подключился очень хорошо.

Так что проверьте вашего пользователя подключения SSH.

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

1 голос
/ 29 сентября 2017

У меня просто была такая же проблема, но в моем случае я решил ее с помощью

service mysqld start

1 голос
/ 14 марта 2017

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

mysql> FLUSH PRIVILEGES;
0 голосов
/ 17 января 2019

Еще одна причина ...

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

Эта настройка была внутри /etc/ssh/sshd_config

PermitTunnel no

После превращения в

PermitTunnel yes

Мне удалось удаленно подключиться к моей базе данных MySQL

0 голосов
/ 22 июня 2018

Я столкнулся с той же проблемой.Я проверил и попытался установить AllowTcpForwarding Да , но его не было в моем sshd_config, так что никакой помощи. Я не изменил sshd_config или my.cnf.Убедитесь, что имя хоста ssh NOT совпадает с именем хоста mysql (используйте localhost).

В рабочей среде выберите +, чтобы добавить новое соединение, и установите следующее:

  • метод подключения: стандартный TCP / IP через SSH
  • SSH Имя хоста: 192.168.0.50: 22 * ​​1017 * (заменить IP удаленного сервера SSH)и порт (необязательно))
  • SSH Имя пользователя: sshuser
  • Вы можете установить пароль или добавить в командной строке
  • MYSQL Имя хоста: localhostили 127.0.0.1
  • Порт сервера MYSQL: 3306
  • Вы можете установить пароль или добавить в командной строке

Проверить соединение,Это должно быть успешно, тогда нажми OK.Viola!

0 голосов
/ 21 мая 2016

При удаленном подключении к Mysql я получил ошибку.У меня было это предупреждение в /var/log/mysqld.log:

[Warning] IP address 'X.X.X.X' could not be resolved: Temporary failure in name resolution

Я только что добавил эту строку в файл /etc/hosts:

X.X.X.X some_name

Проблема решена!Неиспользование skip-name-resolve вызвало некоторые ошибки в моем локальном приложении при подключении к MySQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...