#缘由
最近后台网站总是崩,发现是由于数据库异常引起的,由于登录上服务器,mysql进程运行正常,但就是连接不上去好像进入‘假死’状态一样;
#排查
打开mysql错误日志,一般是/usr/local/mysql/var/xxx.err文件,发现大量Forcing close of thread xxx user: 'root'的报错日志;在网上查找资料,说这是由于mysql自身的原因:dns反查,可以说是mysql的一个bug吧。
#解决
打开mysql的配置文件my.cnf,在文件中[]添加以下配置:
skip-name-resolve
重启mysql;
或者kill掉mysql进程,然后再启动进程时在启动命令后加上:
--skip-name-resolve
#拓展
mysql默认状态下是自动dns反向解析的,这是属于mysql系统上的一个特殊设定,把这个当成是mysql的一个bug算了;不管链接的的方式是经过 hosts 或是 IP 的模式,他都会对 DNS 做反查 mysqld 会尝试去反查 IP → dns ,由于反查解析过慢,就会无法应付过量的查询。
拓展引用: