mysql 出现大量的unauthenticated user
最近使用数据库时明显感觉到一些查询更新操作变慢了,使用show processlist查看当前进程时,发现了很多unauthenticated user的进程
官方给出的解释是MySQL有一个线程在处理客户端的连接,但是该客户端还没通过用户验证,show processlist时显示 "unauthenticated user"。即:先作反向解析IP>Hostname,然后作Hostname>IP的正向解析。如果结果符合,则验证为合法用户允许登录,如果不符合则定义为“unauthenticated user”。
解决方式:
1.关闭mysql的DNS反向解析,mysql使用IP或者%授权
在mysql 5.7版本配置文件/etc/mysql/mysql.conf.d/mysqld.cnf 的[mysqld]中添加
skip-name-resolve
2.在 /etc/hosts 添加IP与主机名对应关系
192.168.0.1 hostname_1