MySQL 8.4 版本說明
此錯誤訊息可能有三個可能的原因。
通常這表示網路連線有問題,如果此錯誤經常發生,您應該檢查網路狀況。如果錯誤訊息包含 「在查詢期間」,這很可能就是您遇到的情況。
有時,當數百萬筆資料列作為一個或多個查詢的一部分傳送時,會發生 「在查詢期間」 的情況。如果您知道發生這種情況,您應該嘗試將 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
。