對于MySQL數(shù)據(jù)庫的備份,每天備份一次是非常必要的。這樣可以確保數(shù)據(jù)庫在意外情況下出現(xiàn)問題時可以快速恢復(fù)。下面介紹一下如何在Linux系統(tǒng)上使用Shell腳本實現(xiàn)每天自動備份MySQL數(shù)據(jù)庫。
#!/bin/bash MysqlUser="用戶名" MysqlPass="密碼" MysqlHost="數(shù)據(jù)庫地址" MysqlPort="數(shù)據(jù)庫端口" MysqlName="數(shù)據(jù)庫名稱" BackupDir="/備份文件夾路徑" DbList=`mysql -u$MysqlUser -p$MysqlPass -h$MysqlHost -P$MysqlPort -e"show databases;" | egrep -v "Database|information_schema|mysql|test"` Date=$(date +%Y-%m-%d_%H-%M-%S) for db in $DbList do mysqldump -u$MysqlUser -p$MysqlPass -h$MysqlHost -P$MysqlPort $db | gzip >$BackupDir/$db-$Date.sql.gz done
首先在Shell腳本中定義MySQL的用戶名、密碼、主機(jī)名、端口號、數(shù)據(jù)庫名、備份文件夾路徑等參數(shù)。然后使用MySQL命令獲取所有數(shù)據(jù)庫的名稱,排除掉系統(tǒng)默認(rèn)的數(shù)據(jù)庫(如information_schema、mysql等),然后循環(huán)遍歷每個數(shù)據(jù)庫,通過mysqldump命令將數(shù)據(jù)庫備份到指定路徑下,并且文件名帶上當(dāng)前日期和時間。
接著需要設(shè)置每天執(zhí)行該腳本。可以將腳本放在Linux系統(tǒng)中的任意目錄下,比如 /root/backup_mysql.sh。使用crontab命令設(shè)置Linux系統(tǒng)每天自動執(zhí)行該腳本:
# 編輯crontab配置文件 crontab -e # 添加一行,表示每天凌晨2點執(zhí)行該腳本 0 2 * * * /bin/bash /root/backup_mysql.sh
上述crontab語句表示每天的凌晨2點執(zhí)行/root/backup_mysql.sh這個腳本。
通過上述設(shè)置,每天MySQL數(shù)據(jù)庫數(shù)據(jù)均會備份到指定文件夾中,確保數(shù)據(jù)安全性。