在MySQL中执行Show Processlist语句可以看到发现大量unauthenticated user进程卡住,听说这是MySQL的bug,下面本文章来给大家介绍MySQL出现大量unauthenticated user解决办法,有碰到此类问题的同学可进入参考参考.
问题状态:重启mysql也尽是失败,看mysql的errorlog,只能看到类似如下的信息:
Forcing close of thread 12232 user: 'root'
用mysqladmin 简单的监控了下mysql的情况:
mysqladmin -uroot -p******** status -i 1
发现Queries per second avg只有200左右,可以说很低,但是Threads 确非常不稳定,居然会瞬间升级200以上,一般情况下这个线程这个值都是不会高于5的个位数.
- mysqladmin -uroot -p******** processlist
- | 2007 | unauthenticated user | 192.168.4.29:58519 | | Connect | | login | |
- | 2008 | unauthenticated user | 192.168.4.29:58553 | | Connect | | login | |
- | 2009 | unauthenticated user | 192.168.4.29:58571 | | Connect | | login | |
- | 2010 | unauthenticated user | 192.168.4.29:58577 | | Connect | | login | |
- | 2011 | unauthenticated user | 192.168.4.29:58579 | | Connect | | login | |
- | 2012 | unauthenticated user | 192.168.4.29:58589 | | Connect | | login | |
原因分析:MySQL会尝试去反查IP->DNS,由于反查解析过慢,无法应付快速多量的查询.
解决办法:解决方式很简单:启动MySQL的时候,添加--skip-name-resolve选项.重新载入配置文件或者重启MySQL服务即可. |