今天公司数据库出现了停顿和阻塞的问题,检查数据库的时候发现,show processlist;可以看到大量:
....: 3436942 : unauthenticated user : 192.168.0.4:49607 : : Connect : : login :: 3436943 : unauthenticated user : 192.168.0.4:49608 : : Connect : : login :.....
不断有未验证的用户尝试登录却没有通过,有同学Google出来,发现是和域名解析有关系:
不管什么客户端连接上来,服务器端都会对客户端进行DNS反查,来获得客户端的域名或主机名。
很有可能是因为DNS服务器出了问题,才导致无法解析——虽然解析出来的结果应该是没有
同学通过在my.cnf中加入skip-name-resolve
来禁止反向域名解析(或者在启动命令行中添加参数--skip-name-resolve
。
这种方式也是推荐的MySQL优化方式之一。
但这种方式的缺点是,权限中的host不能再使用主机名,而要使用IP地址,所幸我们配置的是“%
”,因此我比较倾向于使用另一种方式,就是在/etc/hosts
文件中添加对应的host记录。