您好,登錄后才能下訂單哦!
小編給大家分享一下如何解決MySQL中Packet for query is too large問題,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
問題描述:
報錯信息:
Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1354 > 1024). You can change this value on the server
by setting the max_allowed_packet' variable
MySQL根據配置文件會限制Server接受的數據包大小。有時候插入、更新或查詢時數據包的大小,會受 max_allowed_packet 參數限制,導致操作失敗。
查看 max_allowed_packet 參數:
在客戶端執行:
show VARIABLES like '%max_allowed_packet%';
得到結果如下:
+--------------------+------------+ | Variable_name | Value | +--------------------+-------------------+ | max_allowed_packet | 1024 | +--------------------+-------------------+
修改方法:
1、修改配置文件
可以編輯my.cnf來修改(windows下my.ini),在[mysqld]段或者mysql的server配置段進行修改。
max_allowed_packet = 20M
如果找不到my.cnf可以通過
mysql --help | grep my.cnf
去尋找my.cnf文件。
linux下該文件在/etc/下。
2、在mysql命令行中修改
set global max_allowed_packet = 2*1024*1024*10 //這里的數值為字節數,這里改為20M,需要重新登陸客戶端起作用
注:在客戶端用命令修改后,只能暫時起作用,重新啟動MYSQL后,會恢復原來的值。
Linux下mysql 報Packet for query is too large (1040 > 1024)錯誤的解決方法
項目之前一直正常運行,這幾天突然一直提示查詢出錯,看了下日志發現提示Packet for query is too large (1040 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.錯誤。百度了解決方法,記錄下解決過程。
1.原因
查詢數據庫返回的數據包太大,超過了默認值。
登錄mysql,在控制臺輸入一下命令查詢默認的max_allowed_packet值,發現只有1024
show VARIABLES like '%max_allowed_packet%';
2.修改默認最大允許包大小
2.1方式一:命令方式
(1).在mysql控制臺下輸入以下命令,設置max_allowed_packet為20M
set global max_allowed_packet = 20*1024*1024;
(2).退出mysql,重啟mysql服務,再登錄myql中查詢max_allowed_packet是否修改成功
show VARIABLES like '%max_allowed_packet%';
2.2方式二:修改配置文件my.cnf方式
(1).mysql控制臺下輸入以下命令,編輯my.cnf
sudo vi /etc/mysql/my.cnf
(2).在[mysqId]下面添加
max_allowed_packet = 20M
2.2退出編輯模式,重啟mysql,步驟如2.1的(2)所示
3.注
配置完查詢max_allowed_packet發現是16777216,實際上是16*1024*1024,并不是期望的20M,于是又查了下,可能是服務器內存容量不夠,因為java就占了很多,所以mysql可能會自動重設參數。所以某些情況下可能是你當時更改完max_allowed_packet參數,過一段時間mysql自動重設參數變為默認的1024,又出現了同樣的錯誤。
看完了這篇文章,相信你對“如何解決MySQL中Packet for query is too large問題”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。