我在VirtualBox的 Windows XP上运行的CentOS 6.1虚拟机上运行MySQL5.6.3。
网卡configuration为网桥模式,所以我的物理和虚拟机共享相同的以太网卡。
在虚拟机上,一切工作正常:互联网访问,DNS查找。 但是,连接到MySQL守护进程需要一段时间,日志不断显示这个警告:
[Warning]无法parsingIP地址“192.168.1.201”:名称parsing中的临时失败
192.168.1.201
是我运行MySQL客户端的主机。
看起来,虽然DNS查找工作正常,但反向 DNS查询最终会超时。
这是虚拟机configuration:
# 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
我的networkingconfiguration有问题吗?
恕我直言,这听起来像你需要mysqld停止使用DNS。
请执行以下操作:将其添加到/etc/my.cnf
[mysqld] skip-host-cache skip-name-resolve
他们重新启动mysql。 从此,mysql将不再通过DNSparsing地址。
试一试 !!!
警告
请阅读MySQL文档中的这些选项:
skip-host-cache
skip-name-resolve
DNS Lookup Optimization and the Host Cache
此外,使用此限制有一个限制:您不能在任何授权表的主机列中使用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
在全局variables列表中不可见。 至于skip_name_resolve
,它是可见的。 但是,它不能dynamic更改,因为它是只读variables。
因此, skip-host-cache
和skip-name-resolve
只能通过mysql重启来更改。