對於連接問題,服務器錯誤日志是有用的信息源。如果服務器是用“--log-warnings”選項啟動的,在錯誤日志中可能會發現下述消息:
010301 14:38:23 Aborted connection 854 to db: 'users' user: 'josh'
如果“Aborted connections”(放棄連接)消息出現在錯誤日志中,可能的原因是:
1.客戶端程序在退出之前未調用MySQL_close()。
2.客戶端的空閒時間超過wait_timeout或interactive_timeout秒,未向服務器發出任何請求。
3.客戶端在數據傳輸中途突然結束。
出現這類情況時,服務器將增加“Aborted_clIEnts”(放棄客戶端)狀態變量。
出現下述情況時,服務器將增加“Aborted_clIEnts”(放棄客戶端)狀態變量。
·客戶端不具有連接至數據庫的權限。
·客戶端采用了不正確的密碼。
·連接信息包不含正確信息。
·獲取連接信息包的時間超過connect_timeout秒。
如果出現這類情況,可能表明某人正試圖侵入你的服務器!
對於放棄客戶端或放棄連接問題,其他可能的源應包括:
·與Linux一起使用以太網協議,半雙工或全雙工。很多Linux以太網驅動均存在該缺陷。應通過FTP在客戶端和服務器機器之間傳輸大文件來測試該缺陷。如果傳輸處於burst-pause-burst-pause(爆發-暫停-爆發-暫停)模式,表明你遇到了Linux雙工故障。唯一的解決方法是,將網卡和Hub/交換器的雙工模式切換為全雙工或半雙工,並對結果進行測試以確定最佳設置。
·與線程庫有關的某些問題導致讀取中斷。
·配置不良的TCP/IP。
·有問題的以太網、Hub、交換器、電纜等。僅能通過更換硬件才能恰當診斷。
·變量max_allowed_packet過小或查詢要求的內存超過為MySQLd分配的內存。