mysql執行show processlist unauthenticated user 解決方案

來源:互聯網
上載者:User

標籤:style   http   color   使用   os   io   檔案   資料   

一台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.


網上找到的另一些說法

發現這屬於官方一個系統上的特殊設定,亦可稱呼他為MySQL的bug,不管連結的的方式是經過hosts或是IP的模式,他都會對DNS做反查。MySQL會嘗試去反查IP->DNS,由於反查解析過慢,無法應付快速多量的查詢。

 

解決方式很簡單:啟動MySQL的時候,添加--skip-name-resolve選項,禁止網域名稱解析,問題解決

 

 代碼如下 複製代碼

mysql >show full processlist;

發現大量 unauthenticated user 串連資訊

13012 unauthenticated user x.x.x.x:2501 None Connect Reading from net

10056 unauthenticated user x.x.x.x:2805 None Connect Reading from net


10311 unauthenticated user x.x.x.x:2306 None Connect writing to net


10326  unauthenticated user x.x.x.x:2715 None Connect login


10422  unauthenticated user x.x.x.x:2811 None Connect login

 

查閱網上資料,主要介紹解決方案如下:
1. 在 /etc/my.cnf  通過添加 skip-name-resolve 參數,關閉mysql的dns反查詢,mysql使用IP授權

2. 在 /etc/hosts 添加IP與主機名稱對應關係 ,檢查 /etc/resovle主DNS服務.

3. 調整mysql max_connections,max_allowed_packet ,wait_timeout,interactive_timeout 參數


      經確認其實上面配置大部分參數生產環境都是已經配置過,出現大量unauthenticated user 資訊時表明mysql沒有給這些用戶端串連請求確認憑證,也就是說mysql無法確認這些串連使用的資料庫帳號資訊,在wait_timeout之內mysql一直等待這些串連完成, 通過測試 telnet  x.x.x.x 3306 觀察,在mysql資料庫也會出現一條  unauthenticated user x.x.x.x:4706 None Connect Reading from net 串連, 因此這種現象不一定就是資料庫問題 ,下面這些都有可能產生這種現象

1.如果應用安全問題出現大量資料庫探測,出現大量這種未經授權的串連

2.應用服務壓力過大出現線程異常中斷導致出現大量異常資料庫連接

3.應用服務異常,導致出現大量異常資料庫連接

4. MySQL 用戶端串連版本問題,驗證協議不相容,尤其注意old-password驗證方式

      最後通過投票系統加入驗證碼防止刷票,減少出現非法和異常串連可能性,重啟PHP服務後CPU負載恢複正常,mysql資料庫unauthenticated user串連也沒再出現。

http://www.111cn.net/database/mysql/42102.htm

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.