如何通过管道使用 7z 压缩 mysql 转储?

Jos*_*nto 6 command-line mysql 7z dump

我一直在尝试使用管道运算符通过 7z 压缩我的 mysqldump 输出(我见过这个问题,但它的答案使用 xz 而不是 7z)。这是我迄今为止尝试过的:

mysqldump -u root -p Linux_Wiki | 7z > backup.sql.7z
Run Code Online (Sandbox Code Playgroud)

和:

mysqldump -u root -p Linux_Wiki | 7za > backup.sql.7z
Run Code Online (Sandbox Code Playgroud)

和:

mysqldump -u root -p Linux_Wiki | '7za a' > backup.sql.7z
Run Code Online (Sandbox Code Playgroud)

和:

mysqldump -u root -p Linux_Wiki | `7za a` > backup.sql.7z
Run Code Online (Sandbox Code Playgroud)

所有四个都失败了,但我确信我已经p7zip安装了,在最后一次尝试给出了这个输出之后:

Enter password: bash: 7-Zip: command not found
mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: NO) when trying to connect
Run Code Online (Sandbox Code Playgroud)

cha*_*aos 8

首先将密码存储.my.cnf在用户主目录中调用的文件中,格式如下:

[mysqldump]
password=secret
Run Code Online (Sandbox Code Playgroud)

然后,您必须使用mysqldump不带-p标志的转储 mysql 数据库(它现在使用文件中的密码):

mysqldump -u root database | 7z a -si backup.sql.7z
Run Code Online (Sandbox Code Playgroud)
  • 添加到存档的a标志7z
  • -si 意味着从标准输入(从匿名管道)读取。