設置自動備份mysql數據庫


設置自動備份mysql數據庫

 
設置自動備份mysql數據庫
低版本:
1.安裝gzip工具
]# yum -y install gzip
2.在mysql中創建一個備份的用戶
]# mysql -uroot -p
MariaDB [(none)]> GRANT ALL ON zabbix.* TO beifenuser@localhost IDENTIFIED BY 'beifen321';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
3.創建一個存放備份的文件夾
]# mkdir -p /home/backup/mysql
4.創建一個備份的腳本
]# vi beifen.sh
#!/bin/bash
# 數據庫信息
DB_USER="backupuser"
DB_PASS="backpass"
DB_HOST="localhost"
DB_NAME=(zabbix)   #需要備份的數據庫名稱,注意中間用空格隔開.
 
# 其他設置
BIN_DIR="/usr/bin"   # mysqldump命令執行路徑
BACK_DIR="/home/backup/mysql"    #備份目錄,這里設為/home/backup/mysql
DATE=`date +%Y%m%d%H%M%S`       #顯示備份時間,格式為20180808122556
# 備份所有指定數據庫
for backdb in ${DB_NAME[@]}
#也可以寫成for eachdb in ${DB_NAME[*]}
do
$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -h$DB_HOST -B ${backdb} | gzip > $BACK_DIR/db_${eachdb}_$DATE.sql.gz
done
# 刪除5天之前的備份文件,但保留日期為1號的文件(用於手動刪除)
find $BACK_DIR/* -regextype "posix-extended" -not -regex ".*[0-9]{6}01[0-9]{6}\.sql\.gz$" -mtime +5 -exec rm {} \;
 
5.測試腳本
]# chmod 777 beifen.sh
]# sh beifen.sh
高版本:
mysql備份報錯:
mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: NO) when trying to connect
在高版本中,是不允許使用明文密碼備份的,所以我們需要修改下配置信息,並使用另一種命令格式備份
1.在mysql配置文件里添加下列幾行配置信息
]# vi /etc/my.cnf
[client]
host=localhost
user=backupuser
password=backpass
2.輸入備份命令
]# mysqldump --defaults-extra-file=/etc/my.cnf 數據庫名 > /home/backup/bak_test.sql
3.腳本
]# vi beifen.sh
#!/bin/bash
#數據庫名稱
DB_NAME=(數據庫名稱1 數據庫名稱2)   #需要備份的數據庫名稱,注意中間用空格隔開.
 
# 其他設置
BIN_DIR="/usr/bin"   # mysqldump命令執行路徑
BACK_DIR="/home/backup/mysql"    #備份目錄,這里設為/home/backup/mysql
DATE=`date +%Y%m%d%H%M%S`       #顯示備份時間,格式為20180808122556
# 備份所有指定數據庫
for backdb in ${DB_NAME[@]}
#也可以寫成for backdb in ${DB_NAME[*]}
do
$BIN_DIR/mysqldump --defaults-extra-file=/etc/my.cnf ${backdb} | gzip > $BACK_DIR/db_${eachdb}_$DATE.sql.gz
done
# 刪除5天之前的備份文件,但保留日期為1號的文件(用於手動刪除)
find $BACK_DIR/* -regextype "posix-extended" -not -regex ".*[0-9]{6}01[0-9]{6}\.sql\.gz$" -mtime +5 -exec rm {} \;
編輯定時任務
1.編輯自動定時任務
]# crontab -e
0 16 * * 1 /home/beifen.sh       #設置為每周1執行備份
2.查看已經保存的定時任務
]# crontab -l
0 16 * * 1 /home/beifen.sh
3.Crontab格式說明
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM