mysqldump error 2020 got packet bigger than max_allowed_packet when dumping
导出的数据单包大小超过 MySQL 全局参数
两种解决思路:导出前临时调大参数、mysqldump 命令行直接指定参数。
max_allowed_packet 限制,大表、大字段(TEXT/BLOB)、大批量数据导出时 mysqldump 分片数据包超限断开。
方式 1:执行 mysqldump 时直接携带参数(推荐,无需改全局配置、不用重启 MySQL)
# 基础格式
mysqldump -u用户名 -p \
--max_allowed_packet=1G \
数据库名 > dump.sql
# 示例
mysqldump -uroot -p \
--max_allowed_packet=1G \
testdb > testdb_backup.sql
可选数值:
256M、512M、1G、2G,根据实际库体量选择。方式 2:登录 MySQL 在线临时修改全局参数(即时生效,重启失效)
-- 设置全局最大包大小
SET GLOBAL max_allowed_packet = 1024*1024*1024; -- 1G
新开客户端会话生效,当前已连接会话不生效,改完重新执行导出即可。
查看当前值:
SHOW VARIABLES LIKE 'max_allowed_packet';
方式 3:永久修改 my.cnf/my.ini 配置文件(彻底根治)
Linux(my.cnf)
[mysqld]
max_allowed_packet = 1G
[mysqldump]
max_allowed_packet = 1G
修改后重启 MySQL 服务:
systemctl restart mysqld

浙公网安备 33010602011771号