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%';

MySQL报错 Cause: com.mysql.cj.jdbc.exceptions.PacketTooBigException:_第1张图片

   通过查看可以发现,未修改前配置限制为4194304(4M),这个可能每个人的配置设置的限制不同。(max_allowed_packet的单位为字节)

2、修改配置,即是扩大配置限制,将4M增大,这里我将其修改为50M,命令如下

set global max_allowed_packet = 5*1024*1024*10;

3、查看修改配置后的限制大小

       注意在里必须关闭数据库连接重新连接数据库查看才可以看到否则一直查看的是修改之前的

MySQL报错 Cause: com.mysql.cj.jdbc.exceptions.PacketTooBigException:_第2张图片

 

上图是修改之后的查询可以看到已经修改成功

你可能感兴趣的:(java基础)