com.mysql.jdbc.PacketTooBigException: Packet for query is too large (6688561 > 4194304). You can change this value on the server by setting the max_allowed_packet' variable.
原因: 查询出的数据包过大,默认情况下mysql 的字段容量过大,所以抛出此异常
解决办法:
首先在控制台查询一下:SHOW VARIABLES LIKE '%max_allowed_packet%';
默认情况下,最大允许数据包的容量是4M ,需要修改更大一点。100M
max_allowed_packet | 4194304 |
slave_max_allowed_packet | 1073741824 |
方法一、
1、到mysql 的安装目录下找到 my.ini 文件中,新增
[mysqld]
max_allowed_packet=20M
备注:默认情况下是没有上述的标记,有就修改,没有就添加
2. 重启mysql服务
3.在控制台查看是否修改成功,在命令控制台输入SQL:SHOW VARIABLES LIKE '%max_allowed_packet%';
显示:
max_allowed_packet | 104857600 |
slave_max_allowed_packet | 1073741824 |
5.修改成功,有效!
方法二、
遇到mysql 服务停掉后,有时候设置的max_allowed_packed 的没有用,需要使用SQL
set global max_allowed_packet = 10*1024*1024*10;
设置成功了,重启。 在命令控制台输入SQL:SHOW VARIABLES LIKE '%max_allowed_packet%'查看;