mysql執行show processlist出現”unauthenticated user”的解決

一臺unibilling機器前幾天突然負載變重. 在top中發現cpu被大量占用. agi程序運行的很慢,並出現僵屍進程. 其實當時隻有50個左右的並發呼叫. 遠遠達不到正常水準. 重新啟動機器問題也沒得到解決. 非常奇怪.
 
考慮到在top中看到mysqld占用的資源最多,就進入mysql控制臺,運行show processlist命令, 發現某進程的信息很特殊:
 
User "unauthenticated user"
Command "connect"
State "reading from net"難道是黑客從internet上攻擊我的機器? 顯然不是, 因為Host那一列顯示的是”localhost”.
 
沒辦法. 在google上一查找,竟發現若幹人遇到過該問題. 也不能算是mysql的bug,因為通過更改配置文件/etc/my.cnf即可解決.
 
具體地講,在mysqld那一欄中添加skip-name-resolve
 
[mysqld]
 
skip-name-resolve
 
註意, skip-name-resolve可以禁用dns解析,但是,這樣不能在mysql的授權表中使用主機名瞭,隻能使用IP. 以前創建mysql用戶是若用的是localhost現在則需要用127.0.0.1來代替在grant語句中執行一下添加該用戶.
 
然後, 重新啟動mysqld.
作者OurMySQL

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *