【数据库----MySQL】Mysql操作容量限制问题-程序员宅基地

技术标签: 数据库-MySQL  

【问题描述】

Error updating database. Cause: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1082 > 1024)

在做查询数据库操作时,报了以上错误,还有out of memery heap hacp ,原因是mysql的max_allowed_packet设置过小引起的,我一开始设置的是1M,后来改为了20M

 

mysql根据配置文件会限制server接受的数据包大小。

有时候大的插入和更新会被max_allowed_packet 参数限制掉,导致失败。

查看目前配置

show VARIABLES like '%max_allowed_packet%';

显示的结果为:

+--------------------+---------+ | Variable_name      | Value   | +--------------------+---------+ | max_allowed_packet | 1048576 | +--------------------+---------+  

以上说明目前的配置是:1M
 


修改方法


1.方法1
可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。

max_allowed_packet = 20M

如果找不到my.cnf可以通过

mysql --help | grep my.cnf

去寻找my.cnf文件。

亲测:修改/etc/my.cnf文件,增加配置即可,然后重启mysql服务

 


2.方法二
进入mysql server
在mysql 命令行中运行
set global max_allowed_packet = 2*1024*1024*10
然后关闭掉这此mysql server链接,再进入。
show VARIABLES like '%max_allowed_packet%';
查看下max_allowed_packet是否编辑成功
 

经验总结:
在很多台机器上用方法一都没问题,但遇到一台机器死活都不成功,
使用命令行方式:set global max_allowed_packet = 16M;
也不行,但使用set global max_allowed_packet = 2*1024*1024*10;
成功了,很是郁闷
问题终于找出来了,不是方法的问题,是设置完成后要把命令行退出重新登录查看,看来系统变量的值在登录后会缓存。但在这台机器上使用配置INI文件。

 

 

待解决问题

为什么隔一段时间之后文件设置仍然是20M,但从数据库查询出来的结果会恢复到1024?

可能性1:峰值内存过高引起

可能性2:修改数据库密码

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ningjiebing/article/details/89411029

智能推荐

面试官:说说UDP和TCP的特点及区别_说说tcp和udp-程序员宅基地

文章浏览阅读551次,点赞3次,收藏2次。文章目录一、TCP 的主要特点二、UDP 的主要特点三、TCP 和 UDP 的区别四、TCP 和 UDP 分别对应的常见应用层协议1.TCP 对应的应用层协议2. UDP 对应的应用层协议一、TCP 的主要特点TCP 是面向连接的。(就好像打电话一样,通话前需要先拨号建立连接,通话结束后要挂机释放连接);每一条 TCP 连接只能有两个端点,每一条 TCP 连接只能是点对点的(一对一);TCP 提供可靠交付的服务。通过 TCP 连接传送的数据,无差错、不丢失、不重复、并且按序到达;T_说说tcp和udp

vue v-for循环生成el-table-column及Emitted value instead of an instance of Error报错解决办法_vue v-for循环成table-程序员宅基地

文章浏览阅读5.9k次,点赞3次,收藏4次。直接上代码 <el-table-column v-for="(item,index) in period" :prop="item" :key="index" ..._vue v-for循环成table

Struts2基础应用_实验报告 struts基础应用-程序员宅基地

文章浏览阅读504次。导入Struts2由于Eclipse不支持Struts2,所以我们使用Struts2需要下载Struts2所需的jar包 Struts2包 http://pan.baidu.com/s/1misIAnu Struts2源码 http://pan.baidu.com/s/1slB5osd要想正常使用Struts2 至少需要这5个包 将这5个必须的包拖入到项目中的WEB-INF中的lib_实验报告 struts基础应用

fast-reid中的sbs_bot agw-程序员宅基地

文章浏览阅读2.1k次。fast-reid中的各种baselines——SBS1.引言fast-reid中提供了不同的baselines,使用不同的backbone和不同的策略。以数据库Market1501为例:提供了四种baselines,其中mgn在2018年提出,bagtricks(BoT)在2019年提出,AGW在2020年1月提出,sbs在2020年6月fast-reid中提出的。在此着重介绍SBS。作者在Githup中给出的关于SBS的内容如下:SBS在BoT基础上又结合了其他的许多tricks。其中Bag_bot agw

Linux学习之旅-文本编辑器Vim_linux 编辑器 em-程序员宅基地

文章浏览阅读97次。文章目录Vim工作模式插入命令Vim工作模式插入命令_linux 编辑器 em

HDU 4975 最大流+判断环_最大流问题有环-程序员宅基地

文章浏览阅读2.4k次。点击打开链接题意:给定的分别是每行值的和,每列值的和,每个元素的值在0~9之间,问有多少种情况符合条件,多种,一种和不可能分别输出三种情况思路:刚读完题根本没有思路,看了网上的才知道用网络流,那样的话就好办了,建个源点,与每行建一条流量为行和的边,每一列与汇点建一条流量为列和的边,每行与每列建一条流量为9的边,跑最大流后判断是否满流就行了,但是要怎么判断有没有多组解呢,当残余网络中有环时,_最大流问题有环

随便推点

时间工具类(全)-程序员宅基地

文章浏览阅读391次。获取两个日期之间的所有日期获取某年某月按天切片日期集合(某个月间隔多少天的日期集合)获取某年某月到某年某月按天的切片日期集合(间隔天数的集合)返回某个日期前几天的日期返回某个日期下几天的日期返回某月该季度的第一个月获取两个日期中的最小日期获取两个日期中的最大日期两个日期相减得到的毫秒数两个日期相减得到的天数获取本月是哪一月获取今年是哪一年获取某个日期的结束时间获取某个日期的开始时间获取本年的结束时间获取本年的开始时间获取某年的结束时间 如2021-12-31 23:59:59_时间工具类

bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory-程序员宅基地

文章浏览阅读1.2w次。yum 安装一个软件包,出现如下错误;-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory–查找python#whereis pythonpython: /usr/bin/python2.6;57612e6e /usr/bin/python2.6 /usr/bin/python /u..._/usr/bin/yum: /usr/bin/python: bad interpreter: no such file or directory

OpenCV计算机视觉实战 - 停车场车位识别【项目实战】(附完整代码)_opencv停车场车位识别视频-程序员宅基地

文章浏览阅读462次。################################################################# 【纸上得来终觉浅,绝知此事要躬行】 B站视频 新课件:https://pan.baidu.com/s/1frWHqCVGR2VTn5QBtW4lPA 提..._opencv停车场车位识别视频

SmartGit的安装和使用_smatrgit-程序员宅基地

文章浏览阅读2.1w次。一、SmartGit是什么? 相信各位在Linux开发环境中使用过SmartSVN的朋友们知道,SmartSVN是SVN的一个图形界面工具,使用起来方便快捷。同理,SmartGit是Git的图形工具,界面基本和SmartSVN类似。安装包如下。http://pan.baidu.com/s/1mg3R7eS二、SmartGit安装 1.解压文件到安装目录中,终端命令行_smatrgit

Base64系列第四篇 C/C++中使用Base64编码解码(从chromium库中抽取)_mop_b64-程序员宅基地

文章浏览阅读3.6w次,点赞4次,收藏15次。本篇《Base64系列第四篇 C/C++中使用Base64编码解码(从chromium库中抽取)》将从大名鼎鼎的chromium库抽取代码,保证健壮高效的完成Base64编码解码。_mop_b64

Linux系统的安装_如何给电脑装linux系统 csdn-程序员宅基地

文章浏览阅读718次。超详细的Linux系统安装_如何给电脑装linux系统 csdn

推荐文章

热门文章

相关标签