Потерянное соединение с сервером MySQL при "чтении исходного пакета связи", системная ошибка: 0
Я получаю ошибку:
"потеряно соединение с сервером MySQL при' чтении исходного пакета связи, системная ошибка: 0"
пока я собираюсь подключить свою БД.
Если я использую localhost все работает нормально. Но когда я использую свой живой IP-адрес, как показано ниже, он получает ошибку:
mysql_connect("202.131.xxx.106:xxxx", "xxxx", "xxxxx") or die(mysql_error());
23 ответа:
кто-то здесь:http://forums.mysql.com/read.php?52,166244, 258515#msg-258515 предполагает, что это может быть проблема брандмауэра:
У меня только что была эта проблема и нашел это был мой брандмауэр. Я использую PCTools Брандмауэр Плюс, и это не позволяло полный доступ к MySQL. Как только я изменился что все в порядке. Надеюсь, это поможет.
возможно ли это?
кроме того, кое-что здесь: http://forums.mysql.com/read.php?52,151255, 213970#msg-213970 предполагает, что это может быть связано с тем, что сервер MySQL привязан к обратному IP-адресу (127.0.0.1 / localhost), который эффективно отключает вас от подключения "снаружи".
Если это так, вам нужно загрузить скрипт на веб-сервер (который, вероятно, также работает на сервере MySQL) и сохранить хост сервера как "localhost"
откройте файл конфигурации mysql с именем my.cnf и попробуйте найти "bind-address", здесь замените настройку (127.0.0.1 или localhost) с вашим IP-сервером live (ip, который вы используете в функции mysql_connect)
Это определенно решит проблему.
спасибо
1) разрешить удаленное подключение к MySQL. Редактировать файл:
>sudo nano /etc/mysql/my.cnf
закомментировать строчку:
#bind-address = 127.0.0.1
Перезапустить MySQL:
>sudo service mysql restart
2) Создать пользователя для удаленного подключения.
>mysql -uroot -p CREATE USER 'developer'@'localhost' IDENTIFIED BY 'dev_password'; CREATE USER 'developer'@'%' IDENTIFIED BY 'dev_password'; GRANT ALL ON *.* TO 'developer'@'localhost'; GRANT ALL ON *.* TO 'developer'@'%';
3) в моем случае мне нужно удаленно подключиться из Windows к машине VirtualBox с Ubuntu. Поэтому мне нужно разрешить порт 3306 в iptables:
>iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
была эта проблема при настройке нового ведомого сервера. Найдено, что IP-адрес ведомого сервера отсутствует на главном сервере . Добавлен IP-адрес, и он позволяет мне подключиться к главному серверу.
обратите внимание, что я использую
hosts.allow
иhosts.deny
контроль доступа.
У меня была эта проблема, и это закончилось тем, что предыдущий системный администратор изменил порт, на котором работал MySQL. MySQL Workbench пытался подключиться к умолчанию 3306, но сервер был запущен на 20300.
проблема в моем случае заключалась в том, что MySQL был привязан только к lo на linux. для того, чтобы решить проблему, я отредактировал мой.cnf (найдено в /etc / mysql / my.cnf) удаление строки bind-address=127.0.0.1
Это позволяет mysql привязываться к любому сетевому интерфейсу
эта ошибка произошла со мной при попытке подключиться к Google Cloud SQL с помощью MySQL Workbench 6.3.
после небольшого исследования я обнаружил, что мой IP-адрес был изменен интернет-провайдером, и он не был разрешен в облаке SQL.
Я разрешил это и вернулся к работе.
проблема для меня заключалась в том, что DNS-запросы были заблокированы FW в подсети. Решение состояло в том, чтобы отключить поиск DNS в MySQL.
Я просто настроил mysql на окне windows. Я получил ошибку OP при попытке подключиться к клиенту Navicat MySql на том же поле. Я должен был указать 127.0.0.1 в качестве хоста, и это его достало.
localhost, или фактический ip-адрес серверов, оба не работали.
ошибка означает, что он не получил ответа от порта, на котором он ожидал найти сервер. Причины варьируются от контакта с неправильной машиной (по одной из нескольких причин) до сервера, не находящегося на ожидаемом порту.
Проверьте, к какому порту привязан ваш сервер в /etc/mysql / my.cnf. Соответствует ли это тому, что находится в вашем заявлении connect. Если они совпадают, то попробуйте подключиться к mysql с самого сервера и из командной строки машины, где вы запускаем клиент. Если он работает в одном месте, а не в другом, то у вас может быть проблема с конфигурацией брандмауэра / маршрутизатора.
Я столкнулся с этой же самой ошибкой при подключении из MySQL workbench. Вот как я это исправил. Мой / etc / my.файл конфигурации cnf имел значение bind-address, установленное на IP-адрес сервера. Это нужно было сделать для настройки репликации. Во всяком случае, я решил это, сделав две вещи:
создайте пользователя, который может быть использован для подключения с адреса привязки в my.cnf файл Е. Г.
создать пользователя 'username' @ 'bind-address 'идентифицированный ' password'; ГРАНТА ВСЕ Привилегии на schemaname.* В 'имя пользователя'@'привязать-адрес'; ФЛЕШ ПРИВИЛЕГИИ;
измените значение имени хоста MySQL в деталях соединения в MySQL workbench, чтобы соответствовать bind-address
в моем случае, у меня было все: все в hosts.отрицать. Изменение этого на все: PARANOID решил мою проблему при подключении через ssh
столкнулся с этой же проблемой, Персонализация Адрес туда и обратно безрезультатно. Решение для меня было привилегии топя.
mysql> FLUSH PRIVILEGES;
проблема была довольно глупой для меня.
я использовал, чтобы получить ту же проблему на AWS EC2 Ubuntu machine (MariaDB устанавливается локально в настоящее время), поэтому я попытался сделать SSH туннелирование, и имел ту же проблему. Поэтому я попытался туннель ssh через терминал:
ssh -L13306:127.0.0.1:3306 root@ip.address -i my/private/key.pem
и он сказал мне это:
пожалуйста, войдите в систему как пользователь "ubuntu", а не пользователь"root".
Я изменил пользователя ssh с root на ubuntu, как и мой SSH config, и он подключился просто отлично.
Так что проверьте ваш SSH подключения пользователя.
Я наблюдал за этим, так что это тоже полчаса моего времени, поэтому я надеюсь, что это будет полезно для вас.
для меня задание
bind-address = 0.0.0.0
наmysql/my.cnf
работали. Он в основном слушает все адреса (но все же один порт).и не забудьте перезагрузить сервер:
systemctl restart mysql
при подключении к Mysql удаленно, я получил ошибку. У меня было это предупреждение в
/var/log/mysqld.log
:[Warning] IP address 'X.X.X.X' could not be resolved: Temporary failure in name resolution
Я только что добавил эту строку в
/etc/hosts
file:X.X.X.X some_name
проблема решена! Не используя
skip-name-resolve
вызвало некоторые ошибки в моем приложении при подключении к MySQL.
У меня была идентичная проблема. Чтобы исправить это, я просто изменил хост с localhost:3306 на просто localhost. Таким образом, ошибка может возникнуть, когда вы сепсируете неподходящий порт для подключения. Лучше оставить его по умолчанию.
разрешение на чтение и запись каталога базы данных также проблема, которую я нашел. Просто убедитесь, что ваше приложение может rw файлы на месте БД. Попробуйте chmod 777 для тестирования.
Я сделал ниже 3 шагов, то работает для меня.
1) bind-address = "YOUR MACHINE IP" in my.cnf file at /etc/my.cnf 2) Restart service by command : service httpd restart 3) GRANT ALL PRIVILEGES ON yourDB.* TO 'username'@'YOUR_APPLICATION_IP' IDENTIFIED BY 'YPUR_PASSWORD' WITH GRANT OPTION;
брандмауэр apache блокирует ip-адрес. поэтому для предоставления доступа используйте следующие команды:
firewall-cmd --permanent --zone=trusted --add-source=YOUR_IP / 32
брандмауэр-cmd --постоянного --зоны=доверяла, добавить порт=3306/TCP и
firewall-cmd --reload
для меня был найден конфигурационный файл " / etc/mysql / mysql.конф.d / mysqld.КНФ" закомментировав адрес привязку сделали свое дело.
Как мы видим здесь: вместо skip-networking по умолчанию теперь слушать только on localhost, который более совместим и не менее безопасен.
Я столкнулся с той же проблемой. Я проверил и попытался установить AllowTcpForwarding Yes но он отсутствовал в моем sshd_config, поэтому никакой помощи.Я не менял sshd_config или мой.cnf. Убедитесь, что имя хоста ssh не то же самое с именем хоста mysql(используйте localhost).
в верстаке, нажмите кнопку+, чтобы добавить новое соединение и установить следующее:
- способ подключения: стандартный TCP / IP через SSH
- имя хоста SSH:192.168.0.50:22 (заменить удаленный SSH сервер IP и порт(дополнительно))
- имя пользователя SSH: sshuser
- вы можете установить пароль или добавить в командной строке
- MYSQL имя хоста:localhost или 127.0.0.1
- порт сервера MYSQL:3306
- вы можете установить пароль или добавить в командной строке
проверить подключение. Тогда он должен быть успешным нажмите "ОК".Виола!