解决MySQL出现大量unauthenticated user的问题
近期OJ及相关的站点打开异常的慢,简直崩溃,一直没找着原因。
进入数据库server。进到mysql里,用show processlist命令查看一下,发现有非常多的unauthenticated user
google了一下,
发现这算属MySQL的一个bug,无论连接是通过hosts还是ip的方式,MySQL都会对DNS做反查,IP到DNS。因为反查的接续速度过慢
(无论是不是isp提供的dnsserver的问题或者其它原因)。大量的查询就难以应付。线程不够用就使劲添加线程,可是却得不到释放,所以MySQL会“假死”。
解决的方案非常easy。结束这个反查的过程,禁止不论什么解析。
打开mysql的配置文件(my.cnf),在[mysqld]以下添加一行:
skip-name-resolve
又一次加载配置文件或者重新启动MySQL服务就可以。