mysql:1153 Got a packet bigger than ‘max_allowed_packet’ bytes的错误

一、错误问题

这个问题是在迁移数据库、备份还原或数据导入时报错:1153 Got a packet bigger than 'max_allowed_packet' bytes

二、出现原因

sql操作的时间过长,或者是传送的数据太大(例如使用insert ... values的语句过长, 这种情况可以通过修改max_allowed_packed的配置参数来避免,也可以在程序中将数据分批插入(使用mysql limit进行分页,循环分批处理数据));

max_allowed_packet就是指mysql服务器端和客户端在一次传送数据包的过程当中最大允许的数据包大小,而mysql的默认max_allowed_packet的值为16M,所以MySQL根据配置文件会限制Server接受的数据包大小大的插入和更新会受 max_allowed_packet 参数限制,导致大数据写入或者更新失败。

三、解决办法

修改参数:

set global max_allowed_packet=1024*1024*512;

查看参数值:

show global variables like 'max_allowed_packet';

相关推荐
杨运交8 小时前
[060][调度模块]Redisson vs Redis 原生锁:两种分布式锁实现深度对比
数据库·redis·分布式
FungLeo8 小时前
Node 后端实战 · 列表查询到底怎么写?一个通用 DSL 封装,过滤分页排序一次搞定
数据库·node.js·serverless·dsl 封装·通用列表查询
抓蛙师8 小时前
多租户 tenant_id SQL 注入漏洞分析与应急响应报告
数据库·sql
ACP广源盛139246256738 小时前
Qwen3.8‑2.4T 开源落地@ACP#国产 MoE 私有化部署下 GSV2221 视频转换芯片机遇分析
大数据·数据库·人工智能
七牛开发者9 小时前
为什么 Go 很适合 AI 辅助开发?
数据库·人工智能·python·elasticsearch·log4j
何以解忧,唯有..11 小时前
数据库索引失效的常见情况与优化策略
数据库·sql·oracle
这个DBA有点耶12 小时前
分布式数据库到底该不该上?从判断标准到架构选型的实战思考
数据库·架构·dba
01_ice12 小时前
MySQL库和表的操作
数据库·mysql
oradh13 小时前
Oracle UNDO表空间管理维护总结
数据库·oracle·undo表空间·undo表空间管理·undo表空间管理维护
布莱克60513 小时前
数据库索引分类:数据结构、物理存储与逻辑角度详解
数据结构·数据库