使用 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
