首页 > 解决方案 > mysqldump + gzip 制作 0 字节的 gz 文件

问题描述

我已经在 Windows 上安装了 gnu gzip 和 MariaDB,我正在尝试运行这个命令

mysqldump -uroot -proot db_name > "DATABASE-2020-01-19-16-53-30.sql" | gzip > "DATABASE-2020-01-19-16-53-30.sql.gz"

我得到的是实际 sql 文件和压缩文件的两个文件:

在此处输入图像描述

压缩文件为 1kb,包含 0 字节的 sql 文件。

我注意到的是,当我运行该命令时它会停止,直到它完成创建转储文件,首先当我运行此命令时,我立即得到两个 0 字节的文件,然后一秒钟后转储文件变为 50mb,但压缩文件变为20 字节,转储文件为 0 字节,所以我猜 gzip 命令没有主动查看 zip,或者读取最终的 sql 文件时出错。

我尝试了许多变体gzip -f -v SOURCE > DESTINATION.gz,但没有成功。

我也在 centos 上测试过,同样的 MariaDB + php 版本,

我在Windows 10上运行带有MariaDB 10.4PHP 7.3.12的WampServer 3.2.0

当我在管道(例如 robots.txt)之后将不同的文件输入 gzip 时,它会起作用,压缩后的文件将成为其中包含 robots.txt 的存档。mysqldump.... | gzip robots.txt > archive.gz

我错过了什么 ?谢谢你的时间。

标签: mysqlgzip

解决方案


你有一个双输出直接

命令应该是

mysqldump -uroot -proot db_name | gzip > "DATABASE-2020-01-19-16-53-30.sql.gz"


推荐阅读