MySQL數(shù)據(jù)庫備份是非常重要的一個工作,用于保護數(shù)據(jù)的完整性和安全性。如果出現(xiàn)了意外情況,備份可以極大地幫助我們恢復數(shù)據(jù)。但手動備份往往太過繁瑣,不利于高效運維。因此,編寫一個自動備份腳本是非常必要的。
下面是一個備份腳本的示例:
#!/bin/bash # 設置備份數(shù)據(jù)的存儲路徑 BACKUP_DIR=/var/backup/mysql # 設置MySQL數(shù)據(jù)庫的連接參數(shù) MYSQL_USER=root MYSQL_PASSWORD=123456 MYSQL_HOST=localhost # 獲取當前日期 DATE=$(date +%Y%m%d) # 創(chuàng)建備份目錄 mkdir -p $BACKUP_DIR/$DATE # 備份整個數(shù)據(jù)庫 mysqldump --opt --routines --single-transaction --user=$MYSQL_USER --password=$MYSQL_PASSWORD --host=$MYSQL_HOST --all-databases | gzip >$BACKUP_DIR/$DATE/all-databases-$DATE.sql.gz # 按數(shù)據(jù)庫備份 for db in $(mysql --user=$MYSQL_USER --password=$MYSQL_PASSWORD --host=$MYSQL_HOST -e "show databases;" --silent | grep -v "schema") do mysqldump --opt --routines --single-transaction --user=$MYSQL_USER --password=$MYSQL_PASSWORD --host=$MYSQL_HOST $db | gzip >$BACKUP_DIR/$DATE/$db-$DATE.sql.gz done # 保留最近7天的備份數(shù)據(jù) find $BACKUP_DIR/* -type d -mtime +7 -exec rm -rf {} \;
該腳本主要分為以下步驟:
- 設置備份數(shù)據(jù)的存儲路徑和MySQL數(shù)據(jù)庫的連接參數(shù)
- 獲取當前日期,并創(chuàng)建備份目錄
- 備份整個數(shù)據(jù)庫,壓縮存儲到備份目錄中
- 按數(shù)據(jù)庫備份,壓縮存儲到備份目錄中
- 刪除7天前的備份數(shù)據(jù),保留最近7天的備份數(shù)據(jù)
通過定時執(zhí)行該備份腳本,可以輕松實現(xiàn)自動備份,確保數(shù)據(jù)安全。