Не удается подключиться к серверу MySQL с использованием IP-адреса

Я пытаюсь подключиться к MySQL, используя IP, но я получаю эту ошибку:

ОШИБКА 2003 (HY000): не удается подключиться к серверу MySQL в "xxx.xxx.xxx.xxx" (111)

Я могу подключиться с помощью localhost хотя вместо ip.

Это не работает:

mysql -u ryan -h xxx.xxx.xxx.xxx -p

И все же это работает:

mysql -u ryan -h localhost -p

Мне удалось подключиться ранее сегодня, затем я установил iRedMail, затем я удалил iRedMail, и процесс удаления сделал что-то с mysql, я думаю, поэтому я переустановил mysql с нуля, используя это:

apt-get purge mysql-server mysql-client mysql-common mysql-client-5.5 mysql-server-5.5

Затем:

apt-get install mysql-server

После этого я создал своего пользователя, и теперь я не могу подключиться, используя IP-адрес, как с новым пользователем, так и с пользователем root, но я могу подключиться, используя localhost,

Что случилось?

1 ответ

Решение

MySQL в вашем примере конфигурации привязан локально к адресу localhost (или для очистки к IP-адресу 127.0.0.1). Если вы хотите подключиться через публичный IP-адрес вашего сервера, доступ будет отклонен.

Вы можете увидеть это, выполнив netstat -ln или в новом стиле с командой ss,

Удаление и повторная установка заменили некоторые файлы конфигурации MySQL. apt-get purge удаляет файлы конфигурации, также для зависимых пакетов. Обычно MySQL привязывается к localhost только при новой установке в Ubuntu, поэтому похоже, что ваш конфигурационный файл MySQL заменен на стандартный. Для других дистрибутивов я ничего не могу сказать о конфигурации по умолчанию.

Если вы хотите использовать MySQL-Administration-Tool (т.е. HeidiSQL) на локальном компьютере, вам не следует менять bind-address в MySQL-Config для публичного IP-адреса. Лучше, если вы используете SSH-туннель.

Со стандартной Linux-командой ssh это очень легко достичь с ssh -L 9999:localhost:3306 <servername> где 9999 это локальный порт. Вы также можете использовать MySQL-порт 3306 в качестве локального порта, но, возможно, это не сработает, если у вас есть локальная установка MySQL. В Windows это также можно сделать с помощью putty, просто поищите в Google "putty mysql tunnel", возможно, этот урок должен это сделать, но, поскольку я являюсь пользователем исключительно Linux, я не могу это проверить.

Другие вопросы по тегам