高負載下常見錯誤,根因多為 connect_timeout 過短(預設 5 秒)導致握手超時。本文提供從參數調整、網路優化到封包大小的完整排查清單。
# 已設環境變數 mysql -u root -p # 未設環境變數 F:\AppServ\MySQL\bin\mysql.exe -u root -p
注意:每句以分號 ; 結束;修改全域變數後需 重啟 MySQL 服務 生效(或寫入 my.ini 的 [mysqld] 區段)。
SET GLOBAL connect_timeout = 60;SHOW STATUS LIKE 'aborted%':Aborted_connects 持續增大即需調大此值。[mysqld] skip-name-resolve 減少域名解析延遲。mysql_query 階段:SET GLOBAL net_read_timeout = 60;SET GLOBAL max_allowed_packet = 64M;(視實際需求調整)。SHOW STATUS LIKE 'aborted%'; -- Aborted_clients: 客戶端非正常斷開 -- Aborted_connects: 連線嘗試被伺服器放棄
操作順序建議:先調connect_timeout+skip-name-resolve觀察 1 天;若仍有錯誤再調net_read_timeout、max_allowed_packet;最後檢查網路硬體與防火牆規則。