MySQL 9.0 發行說明
此錯誤訊息有三個可能的原因。
通常這表示網路連線有問題,如果這個錯誤經常發生,您應該檢查您的網路狀況。如果錯誤訊息包含 「在查詢期間,」,這可能是您遇到的情況。
有時,當數百萬筆資料列做為一個或多個查詢的一部分傳送時,會發生 「在查詢期間」 的形式。如果您知道正在發生這種情況,您應該嘗試將 net_read_timeout
從預設的 30 秒增加到 60 秒或更長的時間,以便資料傳輸完成。
更罕見的情況是,當用戶端嘗試與伺服器進行初始連線時可能會發生。在這種情況下,如果您的 connect_timeout
值僅設定為幾秒鐘,您或許可以透過將其增加到十秒鐘來解決問題,如果您的連線距離非常長或速度很慢,則可能需要更長的時間。您可以使用 SHOW GLOBAL STATUS LIKE 'Aborted_connects'
來判斷您是否遇到這種比較不常見的原因。對於伺服器中止的每次初始連線嘗試,它都會增加一。您可能會看到錯誤訊息中包含 「讀取授權封包」;如果是這樣,這也表示這是您需要的解決方案。
如果原因不是剛剛描述的那些,您可能是遇到 BLOB
值大於 max_allowed_packet
的問題,這可能會導致某些用戶端發生此錯誤。有時您可能會看到 ER_NET_PACKET_TOO_LARGE
錯誤,這證實您需要增加 max_allowed_packet
。