Packet for query is too large
cookqq ›博客列表 ›mysql

Packet for query is too large

2024-01-13 17:36:49.0|分类: mysql|浏览量: 2614

摘要: max_allowed_packet表示MySQL Server或者客户端接收packet的最大大小,packet即数据包,MySQL Server和客户端都有这个限制。

错误现象:Packet for query is too large(1767212 > 1048576),You can change this value on the server by setting the 'max_allow_packet' variable.

解决办法:MySQL的一个系统参数:max_allowed_packet,其默认值为1048576(1M),
查询:show VARIABLES like '%max_allowed_packet%';

QQ截图20151211095339.png

修改此变量的值:

第一种方法:MySQL安装目录下的my.ini文件中的[mysqld]段中的"max_allowed_packet = 1M",(可能有些文件会没有这一行的)

格式为:

[mysqld]

max_allowed_packet = 10M ( 将1M更改为4M(如果没有这行内容,增加一行)),

保存,

重起MySQL服务。

第二种方法:

mysql命令行中执行:

set global max_allowed_packet = 1024*1024*10
设置完毕之后推出客户端端,重新登录,可以观察到生效。


相关知识:

数据包

每个数据包,都由包头、包体两部分组成,包头由3字节的包体长度、1字节的包编号组成。

3字节最多能够表示2 ^ 24 = 16777216字节(16M),就是说,一个数据包的包体长度必须小于等于16M,(比16MB少1个字节)。


当要发送大于16M的数据怎么办?

当要发送大于16M的数据时,会将数据拆分成多个16M的数据包,除最后一个数据包之外,其他数据包大小都是16M。

而MySQL Server收到这样的包后,如果发现包体长度等于16M ,他就知道本次接收的数据由多个数据包组成,

会先将当前数据包的内容写入缓冲区,然后接着读取下一个数据包,并将下一个数据包的内容追加到缓冲区,

直到读到结束数据包,就接收到客户端发送的完整数据了。


怎样算一个数据?

一个SQL是一个数据包返回查询结果时,一行数据算一个数据包。

解析的binlog ,如果用MySQL客户端导入,一个SQL算一个数据包。

在复制中,一个event算一个数据包。


参考文档:https://mp.weixin.qq.com/s?__biz=MzI2NzM1OTM4OA==&mid=2247496679&idx=1&sn=bc9391542d1b42c64e1d49632c4cf969&chksm=ea82b614ddf53f0225e2f7249f907f46552283bdb1970d5b340fc94ed9a72638044444542811&scene=27

一键分享文章

分类列表

  • • struts源码分析
  • • flink
  • • struts
  • • redis
  • • kafka
  • • ubuntu
  • • zookeeper
  • • hadoop
  • • activiti
  • • linux
  • • 成长
  • • NIO
  • • 关键词提取
  • • mysql
  • • android studio
  • • zabbix
  • • 云计算
  • • mahout
  • • jmeter
  • • hive
  • • ActiveMQ
  • • lucene
  • • MongoDB
  • • netty
  • • flume
  • • 我遇到的问题
  • • GRUB
  • • nginx
  • • 大家好的文章
  • • android
  • • tomcat
  • • Python
  • • luke
  • • android源码编译
  • • 安全
  • • MPAndroidChart
  • • swing
  • • POI
  • • powerdesigner
  • • jquery
  • • html
  • • java
  • • eclipse
  • • shell
  • • jvm
  • • highcharts
  • • 设计模式
  • • 列式数据库
  • • spring cloud
  • • docker+node.js+zookeeper构建微服务
版权所有 cookqq 感谢访问 支持开源 京ICP备15030920号
CopyRight 2015-2018 cookqq.com All Right Reserved.