在A服务器要对B服务器的mysql数据库进行异地备份,A主机中是在docker中安装的mysql,可以在A服务器中使用以下命令对B数据库的数据进行备份;B服务器的IP为111.222.33.44,端口为3306,密码为12345678,备份的库为crmeb,保存到A服务器的路径为/data/backup/wl111.sql.gz
docker exec mysql mysqldump -h 111.222.33.44 -P 3306 -u root -p12345678 crmeb|gzip > /data/backup/wl111.sql.gz
注意事项:
docker exec -it 【容器名】mysqldump
-p12345678 -p后面直接接密码,不要加空格,不要加空格
如果A服务器中mysql直接安装在宿主机,就不需要输入前面的docker exec mysql ,直接使用mysqldump
-P大小的P表示数据库端口,小写的p代表数据库密码
---------------------------------------------------------------------------------------------------------------------------------
也可以在A服务器下/data/目录下创建backup.sh
DB_USER="root"
DB_PASSWORD="12345678"
DB_NAME="crmeb"
DB_HOST="111.222.33.44"
DB_PORT="3306"
BACKUP_DIR="/data/backup/wl"
# 创建备份目录
mkdir -p $BACKUP_DIR
# 执行备份并压缩 注意P大小写 小写p密码 大写P端口
docker exec mysql mysqldump -h $DB_HOST -P $DB_PORT -u $DB_USER -p$DB_PASSWORD $DB_NAME|gzip > $BACKUP_DIR/${DB_NAME}_$(date +%Y%m%d%H%M%S).sql.gz
# 输出备份完成的信息
echo "Backup completed: $(date)"
再在终端下输入命令,创建linux定时任务
crontab -e
再输入
*/5 * * * * /data/backup.sh
现在就在linux下创建了定时任务,每5分钟执行一次/data/backup.sh
============================在B服务器下进行本地数据库备份===================
DB_USER="root"
DB_PASSWORD="12345678"
DB_NAME="crmeb"
BACKUP_DIR="/data/backup/wl"
# 创建备份目录
mkdir -p $BACKUP_DIR
# 执行备份并压缩
mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME | gzip > $BACKUP_DIR/${DB_NAME}_$(date +%Y%m%d%H%M%S).sql.gz
# 输出备份完成的信息
echo "Backup completed: $(date)"