260801-mysqldump压缩导出-ZLIB-LZ4(mysqlpump&mysql)5.7.26-压缩导出-md
Created At : 2026-08-01 09:18
MySQL 5.7.26 可以直接使用官方自带的 mysqlpump.exe 压缩导出。它支持 ZLIB 和 LZ4 两种压缩算法。
案例
服务端执行,解决异常问题
mysqlpump: [WARNING] (13) Can’t get stat of ‘.\mysql\general_log.CSV’ (Errcode: 2 - No such file or directory) mysqlpump: [ERROR] (13) Can’t get stat of ‘.\mysql\general_log.CSV’ (Errcode: 2 - No such file or directory)
1 2 3 4 5 6 7 8 9 10 11 12 ## 关闭 SET GLOBAL general_log=OFF; SET GLOBAL slow_query_log=OFF; SET GLOBAL log_output='FILE'; SELECT @@GLOBAL.general_log, @@GLOBAL.log_output, @@GLOBAL.slow_query_log; ## 生产环境可以保持 SET GLOBAL general_log = OFF; SET GLOBAL log_output = 'FILE'; SET GLOBAL slow_query_log = ON;
含义是:
general_log = OFF:关闭所有 SQL 通用日志,避免日志量巨大和性能下降。
log_output = FILE:日志写到文件,不写入损坏的系统 CSV 表。
slow_query_log = ON:保留慢查询日志,用于排查慢 SQL。
这是比较合理的生产配置,无须为了导出结束而恢复成 TABLE。
算法文件对比 假设原始 SQL 文件为 10 GB ,实际结果可能类似:
算法
可能的压缩大小
导出压缩耗时
LZ4
3~5 GB
较短
ZLIB
2~4 GB
较长
1 mysqlpump.exe --no-defaults -h 127.0.0.1 -P 3306 -u root --password --single-transaction --default-character-set=utf8mb4 --compress-output=LZ4 --result-file="C:\mysql-backup\km_tables.sql.lz4" km_database km_table
推荐:ZLIB 压缩导出 在 Windows CMD 或 PowerShell 中执行:
1 2 3 4 5 6 7 8 9 10 "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqlpump.exe" ^ -h 127.0.0.1 ^ -P 3306 ^ -u root ^ -p ^ --single-transaction ^ --default-character-set=utf8mb4 ^ --compress-output=ZLIB ^ --result-file="C:\mysql-backup\km_database.sql.zlib" ^ km_database
执行后生成:
1 C:\mysql-backup\km_database.sql.zlib
这里建议使用 --result-file,不要在 PowerShell 中写:
1 mysqlpump ... > backup.zlib
因为 Windows PowerShell 的输出重定向可能改变输出编码;官方也建议 Windows 使用 --result-file。
指定表并使用 LZ4 压缩 1 2 3 4 5 6 7 8 9 10 11 12 13 "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqlpump.exe" ^ -h 127.0.0.1 ^ -P 3306 ^ -u root ^ -p ^ --single-transaction ^ --default-character-set=utf8mb4 ^ --compress-output=LZ4 ^ --result-file="C:\mysql-backup\km_tables.sql.lz4" ^ km_database ^ product_auto_task_data ^ product_auto_task_data_detail ^ km_device
这条命令只导出:
1 2 3 km_database.product_auto_task_data km_database.product_auto_task_data_detail km_database.km_device
LZ4 和 ZLIB 都是 MySQL 5.7 mysqlpump 支持的输出压缩算法。
解压备份 MySQL 5.7.26 自带 zlib_decompress.exe:
1 2 3 "C:\Program Files\MySQL\MySQL Server 5.7\bin\zlib_decompress.exe" ^ "C:\mysql-backup\km_database.sql.zlib" ^ "C:\mysql-backup\km_database.sql"
zlib_decompress 从 MySQL 5.7.10 开始提供,因此 5.7.26 可以使用。
导入恢复 1 2 3 4 5 6 7 8 9 10 11 "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql.exe" ^ -h 127.0.0.1 ^ -P 3306 ^ -u root ^ -p ^ --default-character-set=utf8mb4 ^ km_database ^ < "C:\mysql-backup\km_tables.sql" mysql.exe -h 127.0.0.1 -P 3306 -u owen -p --default-character-set=utf8mb4 km_database < "C:\mysql-backup\km_tables.sql" mysql.exe -h 127.0.0.1 -P 3306 -u root -p --default-character-set=utf8mb4 km_database < "C:\mysql-backup\km_tables.sql"
LZ4 方式 LZ4 一般压缩速度更快,也可以直接使用:
1 2 3 4 5 6 7 8 9 mysqlpump.exe ^ -u root ^ -p ^ --single-transaction ^ --compress-output=LZ4 ^ --result-file="C:\mysql-backup\km_database.sql.lz4" ^ km_database mysqlpump.exe -u root -p --single-transaction --compress-output=LZ4 --result-file="C:\mysql-backup\km_database.sql.lz4" km_database
解压:
1 2 3 4 5 6 lz4_decompress.exe ^ "C:\mysql-backup\km_database.sql.lz4" ^ "C:\mysql-backup\km_database.sql" lz4_decompress.exe "C:\mysql-backup\km_tables.sql.lz4" "C:\mysql-backup\km_tables.sql" lz4_decompress.exe "C:\mysql-backup\production_data_202608.sql.lz4" "C:\mysql-backup\production_data_202608.sql"
因此,你这个版本优先使用:
1 mysqlpump.exe + --compress-output=ZLIB + --result-file
比 mysqldump + 7-Zip 更直接,不需要先生成未压缩的 SQL 文件。
转载请注明来源。若文章内容存在错误、过期信息或更优解法,欢迎在仓库中提出修正。