最近發現兩臺MySQL server在中午的時候突然(很忽然的那種)發飆,不斷的掛掉。重啓mysql也滿是失敗,看mysql的errorlog,只能看到相似以下的信息:mysql
Forcing close of thread 12232 user: 'root'sql
發現這算屬MySQL的一個bug,無論鏈接是經過hosts仍是ip的方式,MySQL都會對DNS作反查,IP到DNS,因爲反查的接續速度過慢(無論是否是isp提供的dns服務器的問題或者其餘緣由),大量的查詢就難以應付,線程不夠用就使勁增長線程,可是卻得不到釋放,因此MySQL會「 假死」。服務器
解決的方案很簡單,結束這個反查的過程,禁止任何解析。spa
一、打開mysql的配置文件(my.cnf),在[mysqld]下面增長一行:線程
skip-name-resolveserver
二、在my.ini添加的內容:dns
skip-lockingip
skip-name-resolveci
從新載入配置文件或者重啓MySQL服務便可thread