Packets larger than max_allowed_packet are not allowed(mysql数据查询提示:不允许超过允许的最大数据包)解决方案
2023-02-18 16:31:47 时间
问题背景:
首先我的项目运用的时Mysql,在做一个数据更新操作的时候,提示异常:System.Exception:“ExecuteNonQuery:Packets larger than max_allowed_packet are not allowed.”,通过查找了网上的一些方案主要是因为本地数据库运行最大查询的数据包太小的原因,也正是因为这个运行数据更新一直无法成功,导致后面的操作无法进行。
说明:
一般默认情况下,max_allowed_packet 的包的大小默认时1024*1024(1Mb),你可以首先使用命令:
查询状态:show VARIABLES like '%max_allowed_packet%';
我查出的结果是:max_allowed_packet:1024 没错这就是问题所在。
解决方法:
使用SQL语句来修改限制(3种推荐方式):
将长度限制设置为32MB:
SET GLOBAL max_allowed_packet=32*1024*1024;
将长度限制设置为1GB(MySQL服务器中允许的最大值):
SET GLOBAL max_allowed_packet=1024*1024*1024;
直接设置会话SET SESSION:
SET SESSION max_allowed_packet=1024*1024*1024;
最后使用上面任何一种方式修改好后重启一些数据库,然后在查询数据包的大小是否改变:
show VARIABLES like '%max_allowed_packet%';
Linux通过编辑my.cnf来修改,windows通过编辑my.ini配置
停止MySQL服务器。
根据自己的数据库安装环境进行配置:
windows找到安装mysql的位置,打开my.ini进行配置修改: max_allowed_packet = 32M Linux 修改的是:my.cnf mysql --help | grep my.cnf 去寻找my.cnf文件 linux下该文件在/etc/下
配置文件修改完成后重启数据库!
相关文章
- 使用了不到200行的核心代码就实现了一个美轮美奂的Redis客户端
- [NetWork] OSI七层模型概述
- 认识spring security
- 基于jpa的specification实现动态查询
- 使用vuex简单的实现系统中的状态管理
- elasticsearch的索引重建
- elasticsearch嵌套对象的映射
- elasticsearch的bulk(批量)操作
- elasticsearch入门(简单的crud操作)
- elasticsearch的dsl查询
- elasticsearch的索引操作
- activemq实现队列的独有消费
- 扩展spring data jpa的repository
- poi实现生成下拉选联动
- poi实现生成下拉选
- springboot多配置环境
- springboot读取配置文件中的信息
- springboot入门
- ssm三大框架整合
- redis实现分布式锁