程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Lost connection to MySQL server at 'reading authorization packet' 處理解決辦法

Lost connection to MySQL server at 'reading authorization packet' 處理解決辦法

編輯:MySQL綜合教程

Lost connection to MySQL server at 'reading authorization packet' 處理解決辦法


Mysql Version : 5.1.73

Os Version : Centos 5.9

問題敘述:

今天一個php程序從客戶端連接Mysql被監測到在偶爾的連接過程中報錯,信息如下:

\

Lost connection to MySQL server at 'reading authorization packet',看到這個錯誤提示,第一想到是客戶端連接不上,服務端本地是否能連接。經驗證,服務端本地是可以連接的,這就松了口氣,一方面有很多任務是跑在Mysql服務端的,如果本地無法連接,會造成大部分程序阻塞;

另一方面,服務端可以連接,那就可以進行相關的查問題。

show processlist查看連接的時候,發現連接數並不多,此時並發不高,不是並發的問題,但是有個值,很顯眼:

\

unauthenticated user,和報錯的信息相似,未驗證的用戶。

查了一下相關的資料,給出的解釋是:“unauthenticated user” 是由一個客戶端發起的連接,但是這個客戶端用戶還沒有被認證。這種情況一般在系統負載比較高或者mysql比較繁忙的時候遇到。

看到連接不高,看有可能是負載高也會導致,這個問題,然後看了下機器負載,負載並不高.....

還有個參數也要提一下,就是skip-name-resolve。當客戶端連接上來,服務器端都會對客戶端進來DNS都會進行反查,來獲得客戶端的域名或主機名。而 skip-name-resolve 這個參數的意義就是禁止反向域名解析。然後就懷疑會不會是DNS服務器出了問題,才導致連接驗證用戶出問題。

然後看了下 skip-name-resolve 狀態

\

此時 skip-name-resolve 參數已經設定了。那這個問題,就可以拿過去不考慮了。

然後發現OS級別的監控外網百兆網卡有流量警報。然後發現了個問題,PHP程序對於Mysql的訪問(每秒會有幾百次的select)全是基於外網,造成了流量過高。然後看了下內網網卡,千兆,呵呵了,果斷把基於外網的訪問挪到內網上來。。。觀察一段時間,連接緩解了,問題沒在發生。。。。。

!記一次網卡造成的Mysql連接異常!

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved