Я пытаюсь подключиться к 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 ответ1

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, я не могу это проверить.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .