Packet for query is too large (xxxx > xxxx)

来源:互联网 发布:b2b软件怎么下载 编辑:程序博客网 时间:2024/06/06 22:33
  • 控制台错误提示: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。

原创粉丝点击