题记:最近总是发现mysql 运行一段时间,就说是内存不够用了然后出现这个错误,ps :下面这个博客对我的作用比较大,转发一下,但是不知道真正的作者是谁
。。。。见谅。。。。
最近发现两台MySQL server在中午的时候忽然(很突然的那种)发飙,不断的挂掉。重启mysql也尽是失败,看mysql的errorlog,只能看到类似如下的信息:
Forcing close of thread 12232 user: 'root'
发现这算属MySQL的一个bug,不管连接是通过hosts还是ip的方式,MySQL都会对DNS做反查,IP到DNS,由于反查的接续速度过慢(不管是不是isp提供的dns服务器的问题或者其他原因),大量的查询就难以应付,线程不够用就使劲增加线程,但是却得不到释放,所以MySQL会“ 假死”。
解决的方案很简单,结束这个反查的过程,禁止任何解析。
1、打开mysql的配置文件(my.cnf),在[mysqld]下面增加一行:
skip-name-resolve
2、在my.ini添加的内容:
skip-locking
skip-name-resolve
重新载入配置文件或者重启MySQL服务即可