Исправлено: ОШИБКА 2003 (HY000): невозможно подключиться к серверу MySQL по адресу «127.0.0.1» (111).
В этом руководстве описаны необходимые шаги для решения проблемы «ОШИБКА 2003 (HY000): невозможно подключиться к серверу MySQL по адресу '127.0.0.1' (111)», которая может возникнуть при попытке получить доступ к серверу базы данных MySQL.
Прежде чем двигаться дальше, если вы являетесь пользователем Linux и новичком в MySQL/MariaDB, вы можете рассмотреть возможность изучения MySQL/MariaDB для начинающих – части 1 и 20. Команды MySQL (Mysqladmin) для администрирования базы данных в Линукс тоже.
С другой стороны, если вы уже являетесь пользователем MySQL среднего/опытного уровня, вы можете освоить эти 15 полезных советов по настройке и оптимизации производительности MySQL/MariaDB.
Примечание. В этом руководстве предполагается, что вы уже установили сервер базы данных mysql.
Возвращаясь к сути вопроса, каковы возможные причины этой ошибки?
- Сбой сети, особенно если сервер базы данных MySQL работает на удаленном хосте.
- На указанном хосте не работает сервер MySQL.
- Брандмауэр блокирует соединение TCP-IP или по другим связанным причинам.
Ниже приведены основные шаги, чтобы справиться с этим.
1. Если сервер базы данных находится на удаленном компьютере, попробуйте проверить соединение клиент-сервер с помощью команды ping
, например:
ping server_ip_address
Как только соединение будет установлено, используйте команду ps
ниже, которая показывает информацию о выбранных активных процессах, вместе с командой pipe
и grep, чтобы проверить, что демон mysql работает. работает в вашей системе.
ps -Af | grep mysqld
где вариант:
-A
— активирует выбор всех процессов-f
– включает полный список форматов
Если результаты предыдущей команды отсутствуют, запустите службу MySQL следующим образом:
sudo systemctl start mysql.service
sudo systemctl start mariadb.service
OR
sudo /etc/init.d/mysqld start
После запуска службы MySQL попробуйте получить доступ к серверу базы данных:
mysql -u username -p -h host_address
2. Если вы по-прежнему получаете ту же ошибку, определите порт (по умолчанию — 3306), который прослушивает демон mysql, выполнив команду netstat.
netstat -lnp | grep mysql
где варианты:
-l
— отображает порты прослушивания-n
– включает отображение числовых адресов.-p
— показывает PID и имя программы, владеющей сокетом.
Поэтому используйте параметр -P
, чтобы указать порт, который вы видите в приведенных выше выходных данных при доступе к серверу базы данных:
mysql -u username -p -h host_address -P port
3. Если все приведенные выше команды выполняются успешно, но ошибка по-прежнему видна, откройте файл конфигурации mysql.
vi /etc/mysql/my.cnf
OR
vi /etc/mysql/mysql.conf.d/mysqld.cnf
Найдите строку ниже и закомментируйте ее, используя символ #
:
bind-address = 127.0.0.1
Сохраните файл и выйдите, затем перезапустите службу MySQL следующим образом:
sudo systemctl start mysql.service
sudo systemctl start mariadb.service
OR
sudo /etc/init.d/mysqld start
Однако, если у вас запущен firewallD или Iptables, попробуйте просмотреть службы брандмауэра и открыть порт mysql, предполагая, что брандмауэр блокирует соединения TCP-IP с вашим сервером MySQL.
Вот и все! Знаете ли вы другие методы или у вас есть предложения по устранению описанной выше ошибки подключения к MySQL? Дайте нам знать, оставив комментарий через форму обратной связи ниже.