MySQL根据配置文件会限制Server接受的数据包大小。有时候大的插入和更新会受 max_allowed_packet 参数限制,导致大数据写入或者更新失败。

查看目前配置:

mysql> show VARIABLES like 'max_allowed_packet';
+--------------------+------------+
| Variable_name      | Value      |
+--------------------+------------+
| max_allowed_packet | 1073741824 |
+--------------------+------------+
1 row in set

max_allowed_packet的单位为字节:

-- 转化为Mb,就是1024Mb
mysql> select 1073741824/1024/1024;
+----------------------+
| 1073741824/1024/1024 |
+----------------------+
| 1024.00000000        |
+----------------------+
1 row in set

修改方法1-配置文件修改

可以编辑my.cnf,在[mysqld]段或者mysql的server配置段进行修改。

max_allowed_packet = 20M

修改my.cnf,配置要重载才能生效

修改方法2-命令修改

参数生效范围为global,不是session. 如果服务器重启设置会失效

set global max_allowed_packet = 2*1024*1024*10

查询时使用的是show variables的话,发现设置好像并没有生效,这是因为show variables等同于show session variables,查询的是会话变量,只有使用show global variables,查询的才是全局变量。

示例:

  • 查询 max_allowed_packet = 1073741824
mysql> show VARIABLES like 'max_allowed_packet';
+--------------------+------------+
| Variable_name      | Value      |
+--------------------+------------+
| max_allowed_packet | 1073741824 |
+--------------------+------------+
1 row in set
  • 设置 max_allowed_packet = 1048576
mysql> set global max_allowed_packet = 1*1024*1024;
Query OK, 0 rows affected
  • 查询结果没变
mysql> show VARIABLES like 'max_allowed_packet';
+--------------------+------------+
| Variable_name      | Value      |
+--------------------+------------+
| max_allowed_packet | 1073741824 |
+--------------------+------------+
1 row in set
  • 全局查看
mysql> show global VARIABLES like 'max_allowed_packet';
+--------------------+---------+
| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+
1 row in set

max_allowed_packet 值设置过小将导致单个记录超过限制后写入数据库失败,且后续记录写入也将失败,为了数据完整性,需要考虑到事务因素。

mysql max_allowed_packet 参数 限制接受的数据包大小相关推荐

  1. MySQL报错 Packet for query is too large,server向mysql发送的数据包大小超过mysql限制

    mysql错误提示 Packet for query is too large (3718 > 1024). You can change this value on the server by ...

  2. 【转】TCP、UDP数据包大小的限制

    [转]TCP.UDP数据包大小的限制 来自:https://blog.csdn.net/caoshangpa/article/details/51530685 1.概述 首先要看TCP/IP协议,涉及 ...

  3. 无线传输的数据速率大小,数据包大小,带宽,网络负载,吞吐量之间的关系

    吞吐量:是指当前流量值,当前流量值由当前网络数据包大小和当前数据包个数决定. 网络带宽:由网卡速率,全双工半双工决定,也就是人们熟知的百兆带宽,千兆带宽. 网络负载:以百分比计算,实际上也就是当前吞吐 ...

  4. ping指定数据包大小

    ping指定数据包大小 linux下ping包的默认大小为64Byte,次数不限.但有时我们需要尝试ping大数据包,来测试网络的状况,这时,就要指定ping包的大小了. Linux下ping大数据包 ...

  5. 如何用命令ping计算机型号,怎么修改cmd中ping命令的数据包大小?

    通过ping命令的l参数可以设置数据包的大小,具体的使用方法如下: C:\Users\xxx>ping 192.168.1.1 正在 Ping 192.168.1.1 具有 32 字节的数据: ...

  6. SOCKET通信中TCP数据包大小的确定

    MSS(maximun segment size)         最大分段大小,TCP有一个最大分段大小,用于通告对端每个分段中能发送的最大TCP数据量.MSS的目的是告诉对端其重组缓冲区大小的实际 ...

  7. 一个数据包大小是多少k_算法交流: 6046 数据包的调度机制 【2.6基本算法之动态规划】...

    [题目描述] 6046 数据包的调度机制 By OIer14wa随着 Internet的迅猛发展,多媒体技术和电子商务应用日益广泛,Internet上的服务质量 (QoS,Qualityof Serv ...

  8. dubbo默认数据包大小修改

    dubbo报错 cause: Data length too large: 26304917, max payload: 8388608, channel: NettyChannel 因为dubbo每 ...

  9. TCP,UDP发送数据包大小浅析

    MTU最大传输单元,这个最大传输单元实际上和链路层协议有着密切的关系,EthernetII帧的结构DMAC+SMAC+Type+Data+CRC由于以太网传输电气方面的限制,每个以太网帧都有最小的大小 ...

最新文章

  1. nginx介绍及常用功能
  2. linux tree命令源码,[转帖]linux tree命令--显示目录的树形结构
  3. axure form列表_常见的列表页如何用Axure画出来
  4. Qt工作笔记-三种方式解决Qt5中文编码问题
  5. eclipse clean和build作用
  6. python的repl模式_如何更改sublimeREPL默认python版本
  7. 【word基础知识】如何将论文中的引文标签和参考文献编号自动关联
  8. CenOS7.4内核升级修复系统漏洞
  9. Spyder突然提示打开kernel时发生错误
  10. 加油站收银系统 Java_加油站也能用收银系统吗?
  11. tomcat的工作原理
  12. 记录点滴——2019年终总结
  13. Unity 性能优化 之 非常酷的SRP Batcher!
  14. 大上显示器,你的护眼利器
  15. 计算机巧用剪纸做画册教案,大班剪纸教案 老虎
  16. cookie的工作原理、cookie的重要性
  17. java画矩形代码_Java以一种方式绘制矩形
  18. 用户画像 | 标签数据存储之MySQL真实应用
  19. css特殊边框形状_了解CSS边框角形状
  20. 利用adb设置安卓http代理

热门文章

  1. 互联网协议 — IPv4 — CIDR 网络地址表示法
  2. 用 Flask 来写个轻博客 (6) — (M)VC_models 的关系(one to many)
  3. 如何实现分享链接到微信朋友圈时显示自定义LOGO以及名称介绍
  4. 在瑞士最大银行驱动创新
  5. 大数据实战之环境搭建(七)
  6. Web常见约定规范(精选)
  7. Linux中表示“时间”的结构体和相关函数
  8. C++中this指针的用法.
  9. 解决DataList控件无缝滚动图片(转)
  10. 苹果系统下如何粘贴复制?