首页 > 数据库 >mysql系列14---docker容器下mysql数据库还原与备份

mysql系列14---docker容器下mysql数据库还原与备份

时间:2022-11-12 17:35:30浏览次数:34  
标签:14 备份 --- mysql home docker backup 数据库

一、数据库定时备份

1、编写mysql在docker容器中备份的shell脚本:

#!/bin/bash
#docker启动的mysql备份
mysql_user="root"
#数据库密码,注意自行修改
mysql_password="123456"
mysql_host="192.168.139.129"
mysql_port="3306"
mysql_charset="utf8mb4"
#备份文件存放的目录,自己创建位置
mkdir -p /home/backup/mysql/
backup_location=/home/backup/mysql/

expire_backup_delete="ON"
#备份文件存放的天数
expire_days=7
backup_time=`date +%Y-%m-%d-%H-%M`
backup_dir=$backup_location
#指定忽略的表
#--ignore-table=tablename

docker exec -i mysql mysqldump -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password --all-databases | gzip> $backup_dir/mysqldb_backup_$backup_time.sql.gz
#定时清理15天前的备份
if [ "$expire_backup_delete" == "ON" -a  "$backup_location" != "" ];then
        `find $backup_location/ -type f -mtime +$expire_days | xargs rm -rf`
        echo -e "\033[32m #### MySQL数据库已备份 $expire_days天前的备份已删除 #### \033[0m" #green
fi

2、执行定时计划,每天凌晨1点执行备份

# /home/shell/mysqlbackup.sh 为脚本的路径
 00 01 * * * /home/shell/mysqlbackup.sh

 

二、数据库还原

1、解压文件

gzip -d /home/backup/mysql/mysqldb_backup_2022-11-12-20-35.sql.gz

2、拷贝文件到容器中

docker cp /home/backup/mysql/mysqldb_backup_2022-11-12-20-35.sql mysql:/var

3、进入mysql容器中

docker exec -it mysql bin/bash

4、执行如下命令后会要求输入mysql密码

mysql -uroot -p

5、将拷贝到容器中的.sql文件用于还原mysql数据库

source /var/mysqldb_backup_2022-11-12-20-35.sql

 

标签:14,备份,---,mysql,home,docker,backup,数据库
From: https://www.cnblogs.com/zhengwei-cq/p/16884222.html

相关文章