使用 Mysqldump Gzip 為 MySQL 資料庫建立壓縮檔案
本教程指導使用帶有和不帶有 crontab
的 mysqldump gzip
對指定的 MySQL 資料庫進行壓縮備份。
使用 mysqldump gzip
為 MySQL 資料庫建立壓縮檔案
mysqldump
和 gzip
是 Linux 作業系統實用程式。mysqldump
用於備份資料庫。
如果我們可以將備份儲存為當前目錄中的壓縮檔案,我們使用 gzip
如下。
示例程式碼一:
-- Syntax: mysqldump -u username -ppassword db_name | gzip > dumpfilename.sql.gz
mysqldump -u root -p test | gzip > dump_test_db.sql.gz
現在,使用 ls
命令確認已建立壓縮檔案。讓我們再舉一個例子,其中資料通過不同的檔案並儲存在最後一個檔案中。
示例程式碼二:
-- 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 步:接下來,建立一個目錄以將所有備份儲存在一個位置。
$ 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