Я получаю сообщение об ошибке:
«Потеряно соединение с сервером MySQL при чтении начального пакета связи, системная ошибка: 0»
пока я собираюсь подключить свой db.
Если я использую localhost, все работает нормально. Но когда я использую свой действующий IP-адрес, как показано ниже, появляется ошибка:
mysql_connect("202.131.xxx.106:xxxx", "xxxx", "xxxxx") or die(mysql_error());
Откройте файл конфигурации mysql с именем my.cnf и попробуйте найти "bind-address", здесь замените параметр (127.0.0.1 OR localhost) на IP-адрес вашего живого сервера (IP-адрес, который вы используете в функции mysql_connect)
Это однозначно решит проблему.
Спасибо
источник
127.0.0.1
где это применимо, чтобы прямой доступ с других хостов был невозможен. Это предотвращает удаленные атаки методом грубой силы и не подвергает сеть возможным проблемам с безопасностью. Если ваше приложение расположено на том же компьютере (что является очень распространенной настройкой хостинга), используйте127.0.0.1
соотв.localhost
в качестве хоста mysql, и он будет работать так же, как привязка службы к внешнему интерфейсу и использование его в качестве хоста mysql. Если ваше приложение находится в другом месте, по возможности используйте внутреннюю сеть.1) Разрешить удаленное подключение к MySQL. Редактировать файл:
Строка комментария:
Перезапустите MySQL:
2) Создайте пользователя для удаленного подключения.
3) В моем случае мне нужно удаленно подключиться с Windows к машине VirtualBox с Ubuntu. Поэтому мне нужно разрешить порт 3306 в iptables:
источник
FLUSH PRIVILEGES
после создания нового пользователя.Была эта проблема при настройке нового подчиненного сервера. Обнаружено, что IP-адрес подчиненного сервера отсутствует в
/etc/hosts.allow
файле главного сервера . Добавлен IP-адрес, и это позволило мне подключиться к главному серверу.Обратите внимание, что я использую
hosts.allow
иhosts.deny
для управления доступом.источник
allow
когдаdeny
естьALL: ALL
...У меня была эта проблема, и в итоге предыдущий системный администратор изменил порт, на котором работал MySQL. MySQL Workbench пытался подключиться к 3306 по умолчанию, но сервер работал на 20300.
источник
Проблема в моем случае заключалась в том, что MySQL был привязан только к lo в Linux. чтобы решить эту проблему, я отредактировал my.cnf (находится в /etc/mysql/my.cnf), удалив строку bind-address = 127.0.0.1
это позволяет mysql связываться с любым сетевым интерфейсом
источник
Эта ошибка возникла у меня при попытке подключиться к Google Cloud SQL с помощью MySQL Workbench 6.3.
После небольшого исследования я обнаружил, что мой IP-адрес был изменен интернет-провайдером, и ему не разрешено использовать Cloud SQL.
Я разрешил это и вернулся к работе.
источник
Я столкнулся с этой же ошибкой при подключении из рабочей среды MySQL. Вот как я это исправил. В моем конфигурационном файле /etc/my.cnf в качестве значения адреса привязки был установлен IP-адрес сервера. Это нужно было сделать для настройки репликации. Во всяком случае, я решил это, выполнив две вещи:
например
источник
Для меня проблема заключалась в том, что DNS-запросы блокировались FW внутри подсети. Решением было отключить поиск DNS в MySQL.
источник
Я только что установил mysql в окне Windows. Я получил ошибку OP при попытке подключиться к клиенту Navicat MySql в том же окне. Мне пришлось указать 127.0.0.1 в качестве хоста, и все получилось.
localhost или фактический IP-адрес серверов не работали.
источник
Ошибка означает, что он не получил ответа от порта, на котором ожидал найти сервер. Причины варьируются от подключения к неправильной машине (по одной из нескольких причин) до того, что сервер не находится на ожидаемом порту.
Проверьте, к какому порту привязан ваш сервер, в /etc/mysql/my.cnf. Соответствует ли это тому, что указано в вашем операторе подключения. Если они совпадают, попробуйте подключиться к mysql с самого сервера и из командной строки компьютера, на котором вы запускаете клиент. Если он работает в одном месте, а не в другом, возможно, у вас проблема с конфигурацией брандмауэра / маршрутизатора.
источник
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (61)
, а неLost connection to MySQL server
сообщение.в моем случае у меня было ALL: ALL в hosts.deny. Изменив это на ВСЕ: PARANOID решил мою проблему при подключении по ssh
источник
Проблема была для меня довольно глупой.
Раньше у меня возникала такая же проблема на машине AWS EC2 Ubuntu (MariaDB пока устанавливается локально), поэтому я попытался сделать SSH-туннель, и у меня возникла та же проблема. Итак, я попытался использовать ssh-туннель через терминал:
И он сказал мне следующее:
Я изменил пользователя ssh с root на ubuntu, как и моя конфигурация ssh, и он отлично подключился.
Так что проверьте пользователя, подключающегося к SSH.
Я наблюдал за этим, так что это тоже полчаса моего времени, поэтому я надеюсь, что это будет полезно для вас.
источник
Для меня был найден файл конфигурации "/etc/mysql/mysql.conf.d/mysqld.cnf", в котором комментирующий адрес привязки помог.
Как мы видим здесь: вместо пропуска сети по умолчанию теперь прослушивание происходит только на локальном хосте, который более совместим и не менее безопасен.
источник
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
и вместоbind-address = 111.112.113.114
я использовалbind-address = 127.0.0.1
. Настройки туннеля SSH установлены, как описано на hostpresto.com/community/tutorials/ ... Молодец! Спасибо!Пробежался по той же проблеме, привязать адрес туда и обратно безрезультатно. Решением для меня были права на сброс .
источник
Для меня, сидящего
bind-address = 0.0.0.0
вmysql/my.cnf
работал. Он в основном слушает все адреса (но по-прежнему один порт).И не забудьте перезагрузить сервер:
systemctl restart mysql
источник
У меня была такая же проблема, но в моем случае я решил ее с помощью
источник
Еще одна причина ...
Я столкнулся с сервером Ubuntu, где все было настроено и не смог подключиться из-за той же ошибки.
Эта настройка была внутри
/etc/ssh/sshd_config
После превращения в
Я смог удаленно подключиться к моей базе данных MySQL
источник
Я пытаюсь подключить свой контейнер докеров db к Ubuntu 18.04, та же проблема.
Сначала проверьте свое устройство запуском,
nmcli dev
чтобы проверитьdocker0
, подключено ли устройство .Если он не подключен, попробуйте перезапустить службу докеров:
sudo service docker restart
источник
В моем случае это был порт 3306, блокирующий университетский Wi-Fi. Я смог подключиться через мобильную точку доступа.
Переключитесь на мобильную точку доступа или другую сеть, и если она там работает, значит, вы знаете, что исходная сеть блокирует порт 3306. Если вы получаете ту же ошибку в более чем одной сети, значит, вы знаете, что она характерна для вашего компьютера.
источник
Firewalld
блокирует IP-адрес. поэтому, чтобы предоставить доступ, используйте эти команды:firewall-cmd --permanent --zone = доверенный --add-source = ВАШ_IP / 32
firewall-cmd --permanent --zone = доверенный --add-port = 3306 / tcp
firewall-cmd --reload
источник
При удаленном подключении к Mysql у меня возникла ошибка. У меня было это предупреждение
/var/log/mysqld.log
:Я только что добавил эту строку в
/etc/hosts
файл:Задача решена! Отсутствие использования
skip-name-resolve
вызвало некоторые ошибки в моем локальном приложении при подключении к MySQL.источник
У меня была идентичная проблема. Чтобы исправить это, я просто изменил host с localhost: 3306 на localhost. Таким образом, ошибка может возникнуть, когда вы укажете неподходящий порт для подключения. Лучше оставить по умолчанию.
источник
-P 3306
Разрешение на чтение и запись каталога базы данных также является проблемой, которую я обнаружил. Просто убедитесь, что ваше приложение может загружать файлы в базу данных. Попробуйте chmod 777 для тестирования.
источник
Я столкнулся с той же проблемой. Я проверил и попытался установить AllowTcpForwarding Yes, но он отсутствовал в моем sshd_config, поэтому без помощи. Я не менял sshd_config или my.cnf. Убедитесь, что имя хоста ssh НЕ совпадает с именем хоста mysql (используйте localhost).
В рабочей среде выберите +, чтобы добавить новое соединение, и установите следующее:
Проверить соединение. Он должен быть успешным, затем нажмите ОК. Виола!
источник
Если адрес привязки отсутствует в вашем файле конфигурации, а mysql размещен на экземпляре AWS, проверьте свою группу безопасности. В идеальных условиях входящие правила должны принимать все соединения с порта 3306, а исходящие правила должны отвечать на все допустимые IP-адреса.
источник
Я сделал ниже 3 шага, затем работал на меня.
bind-address = "YOUR MACHINE IP"
вmy.cnf
файле /etc/my.cnfПерезапустите сервис командой:
service httpd restart
GRANT ALL PRIVILEGES ON yourDB.* TO 'username'@'YOUR_APPLICATION_IP' IDENTIFIED BY 'YPUR_PASSWORD' WITH GRANT OPTION;
источник
У меня была аналогичная ошибка (подключение к MYSQL на aws через MYSql Workbench). Раньше я подключался нормально, и вдруг он перестал работать и просто не работал снова). Мое соединение было через SSH, защищенное ключевым файлом.
Оказывается, у меня был тайм-аут. Поэтому я увеличил тайм-аут SQL-соединения до 30 секунд (по умолчанию 10) и снова начал работать. что попробовать (если вы находитесь в аналогичной настройке)
mysql -u [username] -p [database]
? Это проверит наличие проблем с правами пользователя и т. Д.источник
Ограниченное дисковое пространство может вызвать эту ошибку.
Проверьте место на диске
Попробуйте увеличить место, если диски используются на 100%.
В моем случае: у меня есть коробка Vagrant (8.0.1) (Ubuntu 16.04) Емкость моего диска mysql составляла 10 ГБ, я увеличил ее до 20 ГБ
Затем перезапустите mysql
источник
Если вы сталкиваетесь с этим erorr, подключающимся с удаленного компьютера, перейдите к удаленной опции mysql в cpanel и затем добавьте% в Host (разрешен подстановочный знак%).
источник