解决com.mysql.cj.jdbc.exceptions.PacketTooBigException: Packet for query is too large (3009 大于 1024)

1.今天遇到一个蛮奇怪的问题 ,项目一天都没啥问题 ,然后等我下班测试就跟我说报错 报错如下:

 

 

 

 

2.然后我立马去控制台打印实时日志查看报如下错 ;

 

 

 

 

3.经过排查才知道在做查询数据库操作时,有可能才会报了以上错误,还有out of memery heap hacp ,原因是mysql的max_allowed_packet设置过小引起的,mysql根据配置文件会限制server接受的数据包大小。有时候大的插入和更新会被max_allowed_packet 参数限制掉,导致失败。 首先进入mysql:mysql -uroot -p 如下图:

 

 

 

 

4.查看当前配置信息:show VARIABLES like '%max_allowed_packet%';

 

 

 

5.上图所示 max_allowed_packet是我修复BUG更改之后的value值 输入show VARIABLES like '%max_allowed_packet%';查询出来是1024 所以3009大小超过了1024 然后我们输入:set global max_allowed_packet = 2*1024*1024*10; 从而设置max_allowed_packet的大小 输入quit退出mysql 最后重启mysql服务器就好了 重启命令:service mysqld restart

6.以上方法有时会实现 建议还是在mysql配置文件中进行修改 修改命令为:vim /etc/my.cnf 在配置文件加入 max_allowed_packet=64M 如下图 然后重启 命令为:service mysqld restart

 

 

 


————————————————
版权声明:本文为CSDN博主「浅唱~幸福」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_39643007/article/details/106135162

posted @ 2023-02-08 11:37  全琪俊  阅读(628)  评论(0编辑  收藏  举报