在 MySQL / MariaDB 插入資料時,每筆資料也會有限制,預設值是 16MB,其實這個 16MB 的限制已經很寬鬆,一般情況都會夠用,但如果將檔案 (例如圖片) 直接儲存在 MySQL 的話,便有可能出現錯誤,當用 inert 插入 或 update 更新的資料超過限制的話,會出現以下錯誤: Error 1153 – Got a packet bigger than ‘max_allowed_packet’ bytes 要解決這個問題可以修改 MySQL 的 max_allowed_packet 變數。 在修改前可以先查看目前的 max_allowed_packet 變數的數值,在 CLI 登入 MySQL: # mysql -u mysql -p 登入 MySQL 後輸入以下指令查看: 上面的數值是 16MB,例如想加大到 32MB, 可以用以下兩種方法設定: 1. 實時改變 max_allowed_packet 變數 這個方法的好處是立即生效,而且不用重新啟動 MySQL,但缺點是下次重新啟動 MySQL 後設定會失效。登入 MySQL 後,輸入以下指令: 2. 修改 my.cnf 修改 my.cnf 可以在重新啟動 MySQL 也保持設定生效,開啟 my.cnf: # vi /etc/my.cnf 在 段落加入 max_allowed_packet 的設定,例如: 最後重新啟動 MySQL: # systemctl restart mysql 你可能感興趣的內容:
內容出處: MySQL / MariaDB 修改資料插入上限 max_allowed_packet
查詢
show variables like ‘max_allowed_packet’;
改256M
set global max_allowed_packet=268435456;