1、问题描述:
Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (45341207>4194304). You can change this value on the server
by setting the max_allowed_packet' variable
2、报错原因:
MySQL根据配置文件会限制Server接受的数据包大小。有时候插入、更新或查询时数据包的大小,会受 max_allowed_packet 参数限制,导致操作失败。
3、解决方案:
3.1 windows版
在客户端执行:
show VARIABLES like '%max_allowed_packet%';
修改方法:
1、在客户端执行:
set global max_allowed_packet = 20*1024*1024
2、修改文件my.ini下的 max_allowed_packet
max_allowed_packet = 20M
注意:在客户端用命令修改后,只能暂时起作用,重新启动MYSQL后,会恢复原来的值
3.2 Linux版
在Linux登录MySQL后执行命令
show VARIABLES like '%max_allowed_packet%';
修改方法:
1、在终端执行
set global max_allowed_packet = 20*1024*1024
2、编辑文件my.cnf max_allowed_packet(linux下该文件在/etc/下)
max_allowed_packet = 20M