MySQL數據庫在操作中有時會出現一些異常,就不如下文中將為大家介紹的未驗證的用戶嘗試登錄,就是MySQL數據庫操作過程中可能會出現的問題,下文中將為大家作出詳細的講解。
今天公司數據庫出現了停頓和阻塞的問題,檢查數據庫的時候發現,show processlist;可以看到大量:
....
: 3436942 : unauthenticated user : 192.168.0.4:49607 : : Connect : : login :
: 3436943 : unauthenticated user : 192.168.0.4:49608 : : Connect : : login :
.....
不斷有未驗證的用戶嘗試登錄卻沒有通過,有同學Google出來,發現是和域名解析有關系:
不管什麼客戶端連接上來,服務器端都會對客戶端進行DNS反查,來獲得客戶端的域名或主機名。
很有可能是因為DNS服務器出了問題,才導致無法解析——雖然解析出來的結果應該是沒有
同學通過在my.cnf中加入skip-name-resolve
來禁止反向域名解析或者在啟動命令行中添加參數--skip-name-resolve。
這種方式也是推薦的MySQL優化方式之一。
但這種方式的缺點是,權限中的host不能再使用主機名,而要使用IP地址,所幸我們配置的是“%”,因此我比較傾向於使用另一種方式,就是在/etc/hosts文件中添加對應的host記錄。
相信大家通過上文的學習,在以後的工作中遇到類似的問題就能夠輕松解決,希望大家都能夠從上文涉及到的內容中有所收獲。