當 MySQL 用戶端或伺服器接收到超過 max_allowed_packet 設定大小的封包時,會拋出「Packet too large」錯誤並關閉連線。部分用戶端可能改報「Lost connection to MySQL server during query」。本文說明如何正確調整此參數。
max_allowed_packet 變數,兩端都需調整預設值:16MB
mysql --max_allowed_packet=32M
或在選項檔 [client] 區段設定:
[client]
max_allowed_packet=32M
預設值:1MB
啟動參數:
mysqld --max_allowed_packet=16M
選項檔 [mysqld] 區段(建議):
[mysqld]
max_allowed_packet=16M
mysqld_safe 腳本中加入 ulimit -d 256000 後重啟正確設定 max_allowed_packet 能有效避免資料傳輸中斷,確保大型資料操作順利完成。