Mysql报Packet for query is too large (1040 > 1024)错误
2024-08-25 16:49:57
Linux下mysql 报Packet for query is too large (1040 > 1024)错误的解决方法
项目之前一直正常运行,这几天突然一直提示查询出错,看了下日志发现提示Packet for query is too large (1040 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.错误。百度了解决方法,记录下解决过程。
1.原因
查询数据库返回的数据包太大,超过了默认值。
登录mysql,在控制台输入一下命令查询默认的max_allowed_packet值,发现只有1024
- show VARIABLES like '%max_allowed_packet%';
2.修改默认最大允许包大小
2.1方式一:命令方式
(1).在mysql控制台下输入以下命令,设置max_allowed_packet为20M
- set global max_allowed_packet = 20*1024*1024;
(2).退出mysql,重启mysql服务,再登录myql中查询max_allowed_packet是否修改成功
- show VARIABLES like '%max_allowed_packet%';
2.2方式二:修改配置文件my.cnf方式
(1).mysql控制台下输入以下命令,编辑my.cnf
- sudo vi /etc/mysql/my.cnf
(2).在[mysqId]下面添加
- max_allowed_packet = 20M
2.2退出编辑模式,重启mysql,步骤如2.1的(2)所示
3.注
配置完查询max_allowed_packet发现是16777216,实际上是16*1024*1024,并不是期望的20M,于是又查了下,可能是服务器内存容量不够,因为java就占了很多,所以mysql可能会自动重设参数。所以某些情况下可能是你当时更改完max_allowed_packet参数,过一段时间mysql自动重设参数变为默认的1024,又出现了同样的错误。
注意事项:
1、 max_allowed_packet的值最大为1G,设置的值必须为1024的倍数
2、设置完后,需要退出mysql,重新进入才能看到设置后的值
1、 max_allowed_packet的值最大为1G,设置的值必须为1024的倍数
2、设置完后,需要退出mysql,重新进入才能看到设置后的值
最新文章
- jQuery用户数字评分效果
- 加速编码的 JavaScript 库和工具
- http的500,502,504错误
- 分享在winform下实现左右布局多窗口界面
- OpenGL完全教程 第一章 初始化OpenGL
- Linux 串口使用
- Centos4.3安装MySQL-python-1.2.3,出现error: command 'gcc' failed with exit status 1
- java.lang.Comparable接口
- 基于MyBatis的数据库切分框架,可实现数据的水平切分和垂直切分。 http://www.makersoft.org
- linux中运行python
- MVVMLight Toolkit在Windows Phone中的使用扩展之一:在ViewModel中实现导航,并传递参数
- iot会议纪要 20180105
- Android Studio--gradle:download 过慢甚至超时timeout报错
- 【算法】LeetCode算法题-Remove Element
- 【C语言】结构体占用字节数及存储与空间分配
- java解析文件
- Intellij IDEA使用spring-boot-devtools无效解决办法(2018年3月9日11:46:00)
- iOS TableView多级列表
- iframe父窗口和子窗口之间的调用
- Android开源库集合(控件)