MySQL [Предупреждение] IP-адрес не может быть разрешен

27

Я использую MySQL5.6.3 на виртуальной машине CentOS 6.1, работающей под Windows XP в VirtualBox .

Сетевая карта настроена в режиме моста, поэтому мои физические и виртуальные машины используют одну и ту же карту Ethernet.

На виртуальной машине все отлично работает: доступ в интернет, поиск DNS. Однако, соединения с демоном MySQL занимают некоторое время, и журналы продолжают показывать это предупреждение:

[Предупреждение] IP-адрес «192.168.1.201» не может быть разрешен: временная ошибка в разрешении имени

192.168.1.201 мой хост-компьютер, на котором я запускаю клиент MySQL.

Похоже, что хотя DNS-поиски работают нормально, обратные DNS-поиски заканчиваются тайм-аутом.

Вот конфигурация виртуальной машины:

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
HWADDR="08:00:27:4B:3D:7C"
NM_CONTROLLED="yes"
ONBOOT="yes"
NETMASK=255.255.255.0
IPADDR=192.168.1.200
GATEWAY=192.168.1.1
PEERDNS=yes

# cat /etc/resolv.conf
nameserver 192.168.1.1

Что-то не так в моей конфигурации сети?

Вениамин
источник
обратитесь к моему другому ответу на этот вопрос: serverfault.com/a/778161/96578
Амин Ш

Ответы:

49

ИМХО Похоже, вам нужно mysqld, чтобы прекратить использование DNS.

Пожалуйста, сделайте следующее: Добавьте это в /etc/my.cnf

[mysqld]
skip-host-cache
skip-name-resolve

Их перезапустите MySQL. С этого момента mysql больше не будет разрешать адреса через DNS.

Попробуйте!

ПРЕДОСТЕРЕЖЕНИЕ

Пожалуйста, прочтите эти параметры в документации MySQL:

Кроме того, есть одно ограничение на использование этого: вы не можете использовать DNS-имена в столбце хоста любой из таблиц предоставления.

ОБНОВЛЕНИЕ 2012-12-17 08:37 ПО ВОСТОЧНОМУ ВРЕМЕНИ

Я недавно спросил, skip-host-cacheи skip-name-resolveможет быть установлен без перезагрузки MySQL. Давайте разберемся:

mysql> show variables like '%host%';
+---------------+--------------+
| Variable_name | Value        |
+---------------+--------------+
| hostname      | ************ |
| report_host   |              |
+---------------+--------------+
2 rows in set (0.00 sec)

mysql> show variables like 'skip_%';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| skip_external_locking | ON    |
| skip_name_resolve     | OFF   |
| skip_networking       | OFF   |
| skip_show_database    | OFF   |
+-----------------------+-------+
4 rows in set (0.00 sec)

mysql> set global skip_name_resolve = 1;
ERROR 1238 (HY000): Variable 'skip_name_resolve' is a read only variable
mysql>

Как показано, skip-host-cacheне отображается в списке глобальных переменных. Что касается skip_name_resolve, это было видно. Тем не менее, он не может изменяться динамически, потому что это переменная только для чтения.

Поэтому skip-host-cacheи skip-name-resolveможет быть изменено только через перезапуск MySQL.

RolandoMySQLDBA
источник
Есть ли у нас проблемы с отключением просмотра DNS?
Uday
@Uday Единственная проблема в MySQL заключается в следующем: вы не можете эффективно использовать DNS-имя в столбце хоста mysql.user. Если у вас есть, вам нужно заменить их на общедоступный или частный (предпочтительно) IP-адрес.
RolandoMySQLDBA
@RolandoMySQLDBA есть ли способ добавить skip-host-cacheи skip-name-resolveбез перезапуска MySql?
Пробежал
@Ran Извините, ответ - нет. Я обновил свой ответ, чтобы отразить это.
RolandoMySQLDBA
Могут ли быть какие-либо возможные проблемы, такие как подключение с локального хоста или любая другая проблема? Я сталкиваюсь с проблемой для ip243.221.167.124.adsl-pool.sx.cn
малайский M