私はパイプ演算子を使用して7zを介してmysqldump出力を圧縮しようとしました。これ質問ですが、その答えは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
p7zip
4つすべてが失敗しましたが、最後の試みで次のような結果が出たのでインストールしたと確信しています。
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
答え1
パスワードは、まず.my.cnf
ユーザーのホームディレクトリにあるファイルに次の形式で保存されます。
[mysqldump]
password=secret
mysqldump
その後、フラグなしでメソッドを使用してmysqlデータベースをダンプする必要があります-p
(今度はファイルのパスワードを使用します)。
mysqldump -u root database | 7z a -si backup.sql.7z
- アーカイブに
a
フラグが追加されました。7z
-si
標準入力(匿名パイプ)から読み取ることを示します。
答え2
一部の人々はこれらの慣行に目を向けるかもしれませんが、次のようにコマンドラインにパスワードを入力できます。
mysqldump -u root -pmyrootpassword database | 7z a -si backup.sql.7z
これは-p
引数の直後になければなりません。
答え3
7zipアルゴリズムを含むパイプラインを使用するには、7zの代わりにxzの使用を検討する必要があります。
xzは7zとまったく同じアルゴリズムを使用しますが、gzip(またはbzip2)のように使用できます。 xzと7zipは同じ作者によって設計されました。
mysqldump -u root -p Linux_Wiki | xz -9 > backup.sql.xz
7zipのGUIはxzを認識します。