Mysql:Forcing close of thread xxx user: 'root' 的解决方法

mysql说挂就挂。一言不和就挂。看了半天的报错日志。Forcing close of thread 10 user: 'root'

2017-02-04T17:42:16.899848Z 0 [Warning] /usr/sbin/mysqld: Forcing close of thread 10  user: 'root'

2017-02-04T17:42:16.899860Z 0 [Warning] /usr/sbin/mysqld: Forcing close of thread 2  user: 'root'

2017-02-04T17:42:16.899868Z 0 [Warning] /usr/sbin/mysqld: Forcing close of thread 11  user: 'root'

2017-02-04T17:42:16.899881Z 0 [Warning] /usr/sbin/mysqld: Forcing close of thread 4  user: 'root'

2017-02-04T17:42:16.899888Z 0 [Warning] /usr/sbin/mysqld: Forcing close of thread 3  user: 'root'

2017-02-04T17:42:16.899894Z 0 [Warning] /usr/sbin/mysqld: Forcing close of thread 6  user: 'root'

2017-02-04T17:42:16.899901Z 0 [Warning] /usr/sbin/mysqld: Forcing close of thread 5  user: 'root'

2017-02-04T17:42:16.899908Z 0 [Warning] /usr/sbin/mysqld: Forcing close of thread 7  user: 'root'

2017-02-04T17:42:16.899915Z 0 [Warning] /usr/sbin/mysqld: Forcing close of thread 8  user: 'root'

2017-02-04T17:42:16.899922Z 0 [Warning] /usr/sbin/mysqld: Forcing close of thread 9  user: 'root'

这种情况一般发生之后,mysql可能重启不了,只能重启服务器。

百度之后

  发现这算属MySQL的一个bug,不管连接是通过hosts还是ip的方式,MySQL都会对DNS做反查,IP到DNS,由于反查的接续速度过慢(不管是不是isp提供的dns服务器的问题或者其他原因),大量的查询就难以应付,线程不够用就使劲增加线程,但是却得不到释放,所以MySQL会“ 假死”。

  解决的方案很简单,结束这个反查的过程,禁止任何解析。

  1、打开mysql的配置文件(my.cnf),在[mysqld]下面增加一行:

  skip-name-resolve
然后重启mysql即可。

添加新评论