Mysqldump Gzip を使用して、MySQL データベースの圧縮ファイルを作成する
このチュートリアルでは、crontab
を使用する場合と使用しない場合の mysqldump gzip
を使用して、指定した MySQL データベースの圧縮バックアップを作成する方法について説明します。
mysqldump gzip
を使用して、MySQL データベースの圧縮ファイルを作成する
mysqldump
と gzip
は Linux オペレーティングシステムユーティリティです。mysqldump
は、データベースのバックアップを取るために使用されます。
バックアップを圧縮ファイルとして現在のディレクトリに保存できる場合は、次のように gzip
を使用します。
コード 1 の例:
-- Syntax: mysqldump -u username -ppassword db_name | gzip > dumpfilename.sql.gz
mysqldump -u root -p test | gzip > dump_test_db.sql.gz
次に、ls
コマンドを使用して、圧縮ファイルが作成されたことを確認します。データがさまざまなファイルを通過し、最後のファイルに保存される別の例を見てみましょう。
コード例 2:
-- Syntax: mysqldump -u username -ppassword db_name | gzip > file1.gz > file2.gz
mysqldump -u root -p test | gzip > file1.gz > file2.gz > file3.gz
出力:
$> ls -l
-rw-r--r-- 1 root root 0 14:35 21 May file1.gz
-rw-r--r-- 1 root root 0 14:35 21 May file2.gz
-rw-r--r-- 1 root root 453 14:35 21 May file3.gz
この例では、mysqldump
が実行され、生成された出力はパイプ(|
)記号を使用してリダイレクトされます。次に、パイプは標準出力を標準入力として gzip
コマンドに送信します。
>
は、最後のファイル名が見つかるまでデータリダイレクトを継続する出力リダイレクト演算子であり、これはデータが保存されるファイルになります。
上記の出力を参照してください。最後のファイルは file3
で、サイズ 453
のデータが含まれていますが、file1
と file2
のサイズは 0
です。gzip
のさまざまなパラメータとその使用法に関する詳細ガイドは次のとおりです。
crontab
を使用して圧縮バックアップを自動化することもできます。次のセクションでそれを学びましょう。
crontab
を使用して圧縮バックアップを自動化する
cron ジョブを作成して、データベースの圧縮バックアップを作成する手順を自動化します。この場合、cron ジョブは、割り当てた特定の時間に mysqldump
コマンドを実行します。
cron ジョブを介して MySQL データベースの自動圧縮バックアップを設定する手順に従う必要があります。
ステップ 1:ユーザーのホームディレクトリに .my.cnf
ファイルを作成します。
sudo nano ~/.my.cnf
以下のように正確なテキストを書いてください。
[client]
user = db_username
password = db_password
db_username
と db_password
を自分の資格情報で更新することを忘れないでください。たとえば、ユーザー名は root
で、パスワードは 12345
です。
サンプルコード:
[client]
user = root
password = 12345
完了したら、ファイルを保存して終了します。
手順 2:資格情報ファイルの権限を制限します。このようにして、指定されたユーザーがアクセスできるようになります。
$ chmod 600 ~/.my.cnf
ステップ 3:次に、すべてのバックアップを 1 か所に保存するディレクトリを作成します。
$ mkdir ~/database_backups
ステップ 4:今すぐ crontab
ファイルを開きます。
$ crontab -e
開いたばかりの crontab
ファイルに次のジョブを書き込みます。毎日午前 3 時にデータベース圧縮バックアップを作成します。
次のジョブでは、ユーザー名は root
、データベース名は test
、database_backups
フォルダーにはすべてのバックアップが保存されます。
$ 0 3* * * /usr/bin/mysqldump -u root test | gzip > /home/root/database_backups/test-$(date +\%Y\%m\%d).gz