PHP / PDO机器:
PDO永远不会进行反向查找.它将进行正向查找,然后连接到该IP.
您应该可以看到,以PHP / PDO机器为根,正在运行
tcpdump -i ethsomething -n -s 1500 -xX port 3306
PDO尝试连接时,此处显示哪个IP号?
MySQL机器:
MySQL永远不会知道您尝试使用的主机名.服务器将看到一个传入请求,在套接字上执行getpeername(),产生一个IP号码.
然后,默认情况下,服务器将对该IP进行反向查找.您可以通过将其关闭
[mysqld]
skip-name-resolve
放入my.cnf文件,然后重新启动服务器.
当MySQL配置为执行反向查找时,它将尝试这样做.如果失败,则在服务器放弃之前,尝试进行DNS响应的连接尝试将需要5到30秒.
如果反向查找成功,MySQL将使用已解析的名称user @ reverse_lookup_result进入mysql.user表及其朋友.
如果反向查找失败,或者已通过skip-name-resolve禁用,则MySQL将进入mysql.user表和具有未解析名称user@1.2.3.4或类似名称的好友.
这会产生有趣的结果:
>启用名称解析后,根据反向查找的成功程度,用户可能具有不同的特权.
>启用skip-name-resolve时,mysql.user.host中非ip-numbers的条目将无用.