MySQL IP地址无法parsing

我在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名称。

更新2012-12-17 08:37 EDT

我最近被问到skip-host-cacheskip-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-cacheskip-name-resolve只能通过mysql重启来更改。