博客 > 10分鐘搞定Linux系統(tǒng)MySQL數(shù)據(jù)庫自動備份
瀏覽量:1619次評論:0次
作者:銳成網(wǎng)絡整理時間:2024-05-15 13:25:59
我們在linux中安裝了mysql數(shù)據(jù)庫,想要實現(xiàn)每天自動備份,并且只保留最近7天的備份數(shù)據(jù),該怎么做呢?下面將以centos7操作系統(tǒng)、mysql5.7數(shù)據(jù)庫為例,講下MySQL數(shù)據(jù)庫自動備份的具體操作過程。
一、創(chuàng)建備份腳本
在你的備份目錄下新建名為backup.sh的腳本:
#!/bin/bash
# 設置日期格式
now="$(date +'%Y%m%d%H%M%S')"
# MySQL的用戶名和密碼
DB_USER="your_username"
DB_PASSWORD="your_password"
DB_NAME="your_database"
# 備份文件的存儲路徑
BACKUP_DIR="/path/to/backup/directory"
# 備份命令
mysqldump -u$DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_DIR/backup_$now.sql
# 刪除過期備份
find $BACKUP_DIR -type f -name "backup_*.sql" -mtime +7 -exec rm {} \;
這個腳本在備份數(shù)據(jù)庫后,使用find命令來查找指定目錄下超過7天(mtime +7)的備份文件,并將其刪除。
注意,記得替換 your_username, your_password, your_database 和 /path/to/backup/directory 為實際的數(shù)據(jù)庫用戶名、密碼、數(shù)據(jù)庫名稱和備份目錄。
二、賦予執(zhí)行權限
運行 chmod +x backup.sh 以確保腳本有執(zhí)行權限。
三、授予PROCESS權限
腳本寫好了,我們試試能不能用,打開腳本所在的目錄,運行 ./backup.sh
結果提示沒有權限:
mysqldump: Error: 'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation' when trying to dump tablespaces
解決方法
在centos中用root賬號登錄mysql
mysql -uroot -p
輸入root用戶的密碼:
然后執(zhí)行命令:
mysql> GRANT PROCESS ON *.* TO user@localhost;
(注意:這里的user要替換成你自己的數(shù)據(jù)庫用戶名)
最后刷新數(shù)據(jù)庫即可:
mysql> flush privileges;
四、設置定時任務
要將backup.sh腳本添加到定時任務(cron job)中,可以按照以下步驟進行操作:
打開終端并使用以下命令編輯 cron 任務:
crontab -e
在打開的文件中,添加以下一行:
0 3 * * * /path/to/backup.sh
在這個例子中, 0 3 * * * 表示在每天凌晨3點執(zhí)行 /path/to/backup.sh 腳本。確保將 /path/to/backup.sh 替換為實際腳本的路徑。
保存文件并關閉編輯器。
添加完畢后,cron 將在每天的指定時間自動執(zhí)行你的備份腳本。
好了,以上就是Linux系統(tǒng)MySQL數(shù)據(jù)庫自動備份的全部操作過程了,僅供參考。
重要聲明:本文來自編程我也會,經(jīng)授權轉載,版權歸原作者所有,不代表銳成觀點,轉載的目的在于傳遞更多知識和信息。
相關文章推薦
2025-05-27 11:53:22
2024-08-20 17:58:16
2024-08-19 17:49:29
2024-08-19 10:23:28
2024-08-16 17:06:33
我的評論
還未登錄?點擊登錄