如何定時備份Mysql資料庫
- 2020 年 4 月 2 日
- 筆記
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資料庫。。。。