MySQL报错 Cause: com.mysql.cj.jdbc.exceptions.PacketTooBigException:
报错详情:
Cause: com.mysql.cj.jdbc.exceptions.PacketTooBigException: Packet for query is too large (2,366 > 1,024). You can change this value on the server by setting the 'max_allowed_packet' variable
SQL []; Packet for query is too large (2,366 > 1,024). You can change this value on the server by setting the 'max_allowed_packet' variable.;
nested exception is com.mysql.cj.jdbc.exceptions.PacketTooBigException: Packet for query is too large (2,366 > 1,024). You can change this value on the server by setting the 'max_allowed_packet' variable.
问题出现原因:
- MySQL会根据配置文件限制server接收的数据包大小
-
在执行比较大数据插入或者更新的时候,会根据配置文件”max_allowed_packet “参数所限制
解决方法:
1、进入数据库,执行如下查询,查看MySQL配置,进入数据库输入以下命令
show variables like '%max_allowed_packet%';
通过查看可以发现,未修改前配置限制为4194304(4M),这个可能每个人的配置设置的限制不同。(max_allowed_packet的单位为字节)
2、修改配置,即是扩大配置限制,将4M增大,这里我将其修改为50M,命令如下
set global max_allowed_packet = 5*1024*1024*10;
3、查看修改配置后的限制大小
注意在里必须关闭数据库连接重新连接数据库查看才可以看到否则一直查看的是修改之前的
上图是修改之后的查询可以看到已经修改成功
推荐阅读
-
mysql 导出数据报错: row must be in range 0-65535
-
mysql 数据迁移有关问题,所有的.frm文件报错·
-
mysql-amoeba路由报错,但信息能正常查询
-
MySQL-5.1.x在RH5上安装报错的问题
-
MySQL 启动报错:File ./mysql-bin.index not found (Errcode: 13)_MySQL
-
windows系统服务器mysql报错InnoDB: Attempted to open解决方法
-
详解mysql密码遗忘和登陆报错的问题解决
-
重新restore了mysql到另一台机器上后mysql 编码问题报错
-
phpmyadmin报错:#2003 无法登录 MySQL服务器的解决方法
-
MySQL中字符串与Num类型拼接报错的解决方法