mysqldump定時備份數據庫


mysql服務器ip:192.168.0.10

備份服務器ip:192.168.0.11

數據庫名稱:db_product

 

思路:在mysql服務器A上創建一個用戶分配權限專門用於數據庫備份,A服務器可以是數據庫集群中的slave之一。找一個磁盤寬裕的服務器B,安裝mysql的客戶端。

在服務器B上執行mysqldump命令備份數據庫。

只安裝mysql客戶端的教程:https://www.cnblogs.com/xxoome/p/8313453.html

#創建用戶,用戶名為【backupuser】並限制客戶端連接ip,【192.168.0.11】為B服務器的ip
CREATE USER 'backupuser'@'192.168.0.11' IDENTIFIED BY 'pwd';

#授予用戶權限,限制了可以訪問的數據庫
GRANT ALL ON db_product.* TO 'backupuser'@'192.168.0.11';
flush privileges;

 

編寫腳本

#創建腳本
touch mysql_backup.sh

#增加可執行權限
chmod +x mysql_backup.sh

腳本內容

#!/bin/sh
# File: /usr/local/xiaohb/mysql_backup.sh
# Database info
DB_NAME="db_product"
DB_USER="backupuser"
DB_PASS="pwd"
DB_HOST="192.168.0.10"
DB_PORT="3306"

BIN_DIR="/usr/bin"
BCK_DIR="/usr/local/xiaohb/mysql_backup"
DATE=`date +%Y%m%d_%H%M%S`

mkdir -p $BCK_DIR
#$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS $DB_NAME > $BCK_DIR/$DB_NAME.dump_$DATE.sql

# 為了減小磁盤空間的消耗,這里使用gzip壓縮
$BIN_DIR/mysqldump --opt -h$DB_HOST -P$DB_PORT -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BCK_DIR/$DB_NAME.dump_$DATE.sql.gz

 

創建定時任務

#編輯定時任務
crontab -e

#若crontab沒有安裝
yum install -y vixie-cron

#每天凌晨1點執行
0 1 * * * /usr/local/xiaohb/mysql_backup.sh

#重載crontab
service crond reload

 


免責聲明!

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



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