Packet for query is too large (xxxx > xxxx)

当遇到MySQL错误'Packet for query is too large...'时,问题源自'max_allowed_packet'参数限制。可以通过两种方式解决:修改MySQL配置文件my.ini(或my.cnf)将1M改为20M并重启服务,或使用Navicat查询'max_allowed_packet'变量,将其值设置为20971520字节后重启服务。
摘要由CSDN通过智能技术生成
  • 控制台错误提示:ERROR org.hibernate.engine.jdbc.spi.SqlExceptionHelper -Packet for query is too large (1313 > 1024). You can change this value on the server by setting the max_allowed_packet’ variable.
    这里写图片描述

  • 错误原因:由于MySQL配置文件里的一个系统参数:max_allowed_packet其默认值为1048576(1M),因此,数据量过大的插入或者更新会受到max_allowed_packet参数的限制,导致写入或者更新失败。

  • 如何查看MySQL当前max_allowed_packet参数的数值:

    • 第一种方法:由于我使用的是windows系统,因此,找到MySQL的安装目录,打开其中的my.ini文件(linux系统下为my.cnf),搜索找到“max_allowed_packet = 1M”这句话,有可能没有,需要自己添加。找到后将1M改为20M,保存配置文件,然后通过windows系统的服务功能restart MySQL服务即可解决。
      这里写图片描述

    • 第二种方法:通过navicat数据库管理工具来查看修改。
      这里写图片描述
      通过查询的方式,键入“show VARIABLES like ‘%max_allowed_packet%’”这段脚本,然后执行,就可以看到。然后修改Value属性值为20M保存,然后重启MySQL服务即可解决。
      这里需要注意的是,20M必须写成字节的形式,20M=20971520。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值