web-dev-qa-db-ja.com

パイプ経由で7zを使用してmysqlダンプを圧縮する方法は?

パイプオペレーターを使用して7zを介してmysqldump出力を圧縮しようとしました( this の質問を確認しましたが、その答えは7zではなくxzを使用しています)。これは私がこれまでに試したことです:

mysqldump -u root -p Linux_Wiki | 7z > backup.sql.7z

そして:

mysqldump -u root -p Linux_Wiki | 7za > backup.sql.7z

そして:

mysqldump -u root -p Linux_Wiki | '7za a' > backup.sql.7z

そして:

mysqldump -u root -p Linux_Wiki | `7za a` > backup.sql.7z

4つとも失敗しましたが、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
6
BH2017

まず、パスワードをユーザーのホームディレクトリの.my.cnfというファイルに次の形式で保存します。

[mysqldump]
password=secret

次に、mysqldump-pフラグなしで使用して、mysqlデータベースをダンプする必要があります(ファイルのパスワードを使用します)。

mysqldump -u root database | 7z a -si backup.sql.7z
  • 7zaフラグがアーカイブに追加されます
  • -siは、標準入力から(匿名パイプから)読み取ることを意味します。
8
chaos

一部の人はこの慣例に不快感を抱くかもしれませんが、次のようにコマンドラインにパスワードを入力できます:

mysqldump -u root -pmyrootpassword database | 7z a -si backup.sql.7z

-p引数の直後に配置する必要があります。

0
TFR3

7Zipアルゴリズムでパイプを使用する場合は、7zではなくxzの使用を検討する必要があります。

xzは7zとまったく同じアルゴリズムを使用しますが、gzip(またはbzip2)と同じように使用できます。 xzと7Zipは同じ作者によって設計されました。

mysqldump -u root -p Linux_Wiki | xz -9 > backup.sql.xz

7ZipのGUIはxzを理解します。

0
Vouze