Я запускаю 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
Что-то не так в моей сетевой конфигурации?
IMHO Похоже, вам нужен mysqld, чтобы перестать использовать DNS.
Пожалуйста, сделайте следующее: Добавьте это в /etc/my.cnf
[mysqld]
skip-host-cache
skip-name-resolve
Их перезапускают mysql. С этого момента mysql больше не будет разрешать адреса через DNS.
Попробуйте !!!
ПРЕДОСТЕРЕЖЕНИЕ
Пожалуйста, прочтите эти параметры в документации MySQL:
Кроме того, есть одно ограничение на использование этого: вы не можете использовать DNS-имена в столбце хоста любой из таблиц предоставления.
Меня недавно спросили, если 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.