一、错误描述:
最近重装了系统并配置了PHP环境和MYSQL数据库,在查看服务器日志的时候发现有很多Mysql 警告“IP address "xxx.xxx.xxx.xxx" could not be resolved 不知道这样的主机”,
双击打开后可以看到详细信息
二、问题产生的原因:
在网上查了些资料简单点说就是反向解析造成的,具体原因是因为“MYSQL Server在本地内存中维护了一个非本地的Client TCP cache,这个cache中包含了远程Client的登录信息,比如IP地址,hostname等信息。如果Client连接到服务器后,Mysql首先会在本地TCP池中根据IP地址解析客户端的hostname或者反解析,如果解析不到,就会去DNS中进行解析,如果还是解析失败就在error log中写入这样的警告信息。”。
三、解决方法:
以下是我解决此问题的整个过程,现整理了一下就当备忘也希望能帮到某些有需要的人。
1、用PhpMyAdmin登录数据库后打开依次打开localhost数据库——User表,修改Host字段,将Localhost改成127.0.0.1
2、禁用IP反向解析域名,修改配置文件,MySQL的配置文件My.ini (在MYSQL的安装目录)。
打开后配置文件后在My.ini 文件 [mysqld] 下面增加一行,输入
skip-name-resolve
修改完配置文件,要重起MYSQL服务才能生效哦!
3、修改网站数据库连接文件,将 Localhost 改用 127.0.0.1,
改完后观察了几天总算没再出现“MYSQL 不知道这样的主机”的问题了,遇到些问题的朋友不妨试试。