问题产生的原因:
出现错误的原因是MYSQL Server在本地内存中维护了一个非本地的Client TCP cache,这个cache中包含了远程Client的登录信息,比如IP地址,hostname等信息。
如果Client连接到服务器后,Mysql首先会在本地TCP池中根据IP地址解析客户端的hostname或者反解析,如果解析不到,就会去DNS中进行解析,如果还是解析失败就是在error log中写入这样的警告信息。
解决办法:
在mysqld的配置文件中(/etc/my.cnf)[mysqld]下添加两个参数
[mysqld]
skip-host-catch
skip-host-resolve
它将禁止 MySql Server 对外部连接进行 DNS 解析,使用这一选项可以消除 MySql 进行 DNS 解析的时间。但是,这样会引起一个问题:连接mysql时,
不能使用 localhost连接了,而是要使用IP(127.0.0.1)地址的;如果是按localhost,对用户赋权限的话,用户登录权限也要修改一下的。