MySQL中 com.mysql.jdbc.PacketTooBigException解决方法

MySQL中 com.mysql.jdbc.PacketTooBigException解决方法

  • com.mysql.jdbc.PacketTooBigException
  • org.apache.ibatis.exceptions.PersistenceException
  • Packet for query is too large (20182 > 1024)

1、问题再先

MySQL中 com.mysql.jdbc.PacketTooBigException解决方法_第1张图片

### Error updating database.  Cause: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (20182 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.
### The error may involve org.flowable.engine.impl.persistence.entity.ResourceEntityImpl.bulkInsertResource-Inline
### The error occurred while setting parameters
### SQL: INSERT INTO ACT_GE_BYTEARRAY(ID_, REV_, NAME_, BYTES_, DEPLOYMENT_ID_, GENERATED_) VALUES                    (?,          1,          ?,          ?,          ?,          ?)        ,           (?,          1,          ?,          ?,          ?,          ?)
### Cause: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (20182 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.
    at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)

2、解决方法

2.1、问题出现原因

  • MySQL会根据配置文件限制server接收的数据包大小
  • 在执行比较大数据插入或者更新的时候,会根据配置文件”max_allowed_packet “参数所限制

2.2、查看配置

  • 进入数据库,执行如下查询,查看MySQL配置
show variables like '%max_allowed_packet%';

MySQL中 com.mysql.jdbc.PacketTooBigException解决方法_第2张图片

  • 通过查看可以发现,未修改前配置限制为1024(1M)

2.3、修改配置

  • 修改配置,即是扩大配置限制,将1024(1M)增大,小编将其修改为20M,执行如下语句即可
set global max_allowed_packet = 2*1024*1024*10;

MySQL中 com.mysql.jdbc.PacketTooBigException解决方法_第3张图片

2.4、查看是否生效

  • 关闭数据库连接后,重新连接数据库
  • 再次执行查看配置语句

MySQL中 com.mysql.jdbc.PacketTooBigException解决方法_第4张图片

  • 完美解决
  • 多关注多评论,留下你遇到的异常,一起研究怎么解决

你可能感兴趣的:(MySQL)