解决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   

 

 

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值