Ошибка подключения к удаленному серверу MySQL [ОШИБКА 1042 (HY000): не удается получить имя хоста для вашего адреса]

У меня есть MySQL 5.5 Server setup на машине с Windows.

Я могу подключиться к серверу из консоли / приложения, работающего на той же машине, но не с удаленной машины. При подключении используйте следующую команду:

mysql -h xx.xx.xx.xx --port=3306 -u root -p

Я получаю следующую ошибку:

ОШИБКА 1042 (HY000): Невозможно получить имя хоста для вашего адреса

Я попытался поместить запись IP клиента в сервер %windir%\system32\drivers\etc\hosts файл как:

<client-ip>  <client-hostname>
  • Сервер: MySQL 5.5
  • ОС: Windows XP

3 ответа

Решение

Я считаю, что это связано с тем, что MySQL пытается установить DNS-имя, связанное с вашим IP-адресом при подключении. Смотрите здесь для получения дополнительной информации на сайте MySQL.

У вас есть два варианта:

1) Исправьте обратный DNS подключенного компьютера. Поскольку вы уже добавили компьютер в файл hosts, это может быть ненужным. Вы также должны выполнить оператор FLUSH HOSTS на сервере MySQL. Смотрите ту же ссылку выше для получения дополнительной информации об этом.

2) Запустите MySQL с опцией "--skip-name-resol". Однако, если вы сделаете это, вы не сможете использовать DNS-имена в инструкциях GRANT. Вместо этого вы будете ограничены использованием IP-адресов.

2.1) или положить в my.ini:

[mysqld]
skip-name-resolve

Я бы порекомендовал (1), если вы можете.

Надеюсь это поможет.

Похоже, что это ошибка в MySQL версии 5.5. Это было решено с помощью следующей опции в разделе [server] my.ini файл

skip-name-resolve

Это отключает поиск DNS MySQL для подключения пиров.

Единственное, что нужно иметь в виду:

... в этом случае вы можете использовать только IP-номера в таблицах грантов MySQL.

У меня была та же проблема, но в Windows 7. Отключение брандмауэра Windows работало для меня.

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