1. 程式人生 > >如何定時備份Mysql資料庫

如何定時備份Mysql資料庫

1.建立備份資料庫儲存目錄

cd data/db
mkdir backup #建立儲存目錄

 

2.新增備份指令碼

vim backupdb.sh #建立指令碼檔案

指令碼內容如下:

#!/bin/sh
db_name="xxxxxx" #資料庫名稱
name="$db_name-$(date +"%Y-%m-%d-%H-%M-%S")" #生成備份檔案的名稱
/usr/local/mysql/bin/mysqldump $db_name >> /data/db/backup/$name.sql #生成備份sql檔案
#/usr/local/mysql/bin/mysqldump $db_name >> /data/db/backup/$name.sql >> /data/db/backup/error.log 2>&1 #可以通過將輸出輸入到日誌檔案中檢視錯誤。
#壓縮並刪除原檔案
cd /data/db/backup
tar -zcvf $name.sql.tar.gz $name.sql --remove-files

 

3.修改mysql配置檔案

vim /etc/my.cnf
#新增
[mysqldump]
user=db_username #資料庫使用者
password=db_password #密碼

#新增完成記得重啟mysql服務
service mysqld restart

 

4.通過crontab新增定時任務執行指令碼

crontab -e #編輯定時任務
0 1 * * * /bin/sh /data/db/backupdb.sh #每天凌晨一點執行備份任務

 

可能會出現的問題:

vim /var/log/cron 檢視定時任務執行紀錄

發現:(root) MAIL (mailed 192 bytes of output but got status 0x004b#012)
這個是執行指令碼許可權問題,進行以下操作:
chmod u+x backupdb.sh #給指令碼新增可執行許可權,如果使用者用的是root只加擁有者就可以。

 

至此,便完成了定時備份Mysql資料庫。。