MYSQL錯誤-ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading authorization packet’, system error


當WEB服務器負載高的時候,經常會出現這種錯誤,

原因:

MySQL默認connect_timeout是5秒,超過了這個時間MySQL的server端就會返回“Bad handshake”。

解決辦法:

1.大多數時候設置"set global connect_timeout=60"是可以解決問題的;

我們可以通過執行“SHOW STATUS LIKE 'aborted%'”,可以觀察到

Variable_name Value
Aborted_clients 6
Aborted_connects 15010

覺得是否要增加connect_timeout的時間,"Aborted_connects"將會隨着服務端放棄客戶端初始連接而增加。如果"Aborted_connects"很大,並且不斷增加,就需要增加"connect_timeout".

2.在MySQL的配置文件中[mysqld]添加"skip-name-resolve",減少域名解析的時間

3.部署服務器端的網絡要好,至少大於100Mbps/s

4.如果是在調用mysql_query的時候出現的問題,那就需要把"net_read_timeout"的時間調成30秒,或者60秒,或者更大的值

5.如果還不能解決問題,那估計是你的SQL語句中含有BLOB這種大類型,我們就需要增加"max_allowed_packet"的值了

參考資料:

http://dev.mysql.com/doc/refman/5.0/en/error-lost-connection.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM