基于Docker实现Mysql定时全量备份(Linux系统)

docker安装MYSQL数据库
第一步:下载
docker pull mysql:5.6
第二步:运行mysql
docker run --detach \
    --publish 13306:3306 \
    --restart always \
    --volume /home/data/mysql13306/conf:/etc/mysql/conf.d \
    --volume /home/data/mysql13306/mysqldata:/var/lib/mysql \
    --volume /home/data/mysql13306/backup:/data/backup \
    --volume /etc/localtime:/etc/localtime \
    --env MYSQL_ROOT_PASSWORD=123456 \
    mysql:5.6 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
第三步:查看mysqlid    
docker ps
第四步:进入musql命令行
docker exec -it {容器ID} /bin/bash
第五步:登录mysql 授权所有IP可以登录
mysql -uroot -p123456
mysql> use mysql;
mysql> grant all privileges  on *.* to root@'%' identified by "123456";
mysql> flush privileges;
mysql> exit
exit

第六步:停止mysql
docker stop {容器ID}

第七步:启动mysql
docker start {容器ID}

第八步:配置备份服务器到需要备份服务器的免密登录

第九步:创建备份脚本
vi /home/backup.sh
脚本如下: 
--------------------
#!/bin/bash
# backup.sh
echo "----开始执行数据同步脚本----"
echo "停止MYSQL服务器============="
docker stop {容器ID}
echo "进入备份数据库目录=========="
cd /home/backup
echo "删除备份===================="
rm -rf *
echo "进入数据库目录=============="
cd /home/data/mysql13306/mysqldata
echo "移动数据===================="
mv /home/data/mysql13306/mysqldata/ibdata1 /home/backup
mv /home/data/mysql13306/mysqldata/表名目录 /home/backup
echo "删除logfile数据============="
rm -rf ib*
echo "远程复制数据================"
scp -r root@需要备份服务器IP:/mnt/sdb1/mysql/表名目录  /home/data/mysql13306/mysqldata
scp -r root@需要备份服务器IP:/mnt/sdb1/mysql/ibdata1 /home/data/mysql13306/mysqldata
echo "启动MYSQL服务器============="
docker start {容器ID}
echo "设置文件夹用户=============="
chown mysql:mysql -R /home/data/mysql13306/mysqldata/
echo "设置文件夹权限=============="
chmod -R 755 /home/data/mysql13306/mysqldata/
echo "----------执行完成----------"

第十步:创建定时任务(没有安装crontab 需要安装)
编辑定时任务:crontab -e
1 0-23 * * *  /home/backup.sh

常用命令:
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status //查看服务状态

crontab -l 查看定时任务


第十一步:链接MYSQL查看数据是否正常
 

你可能感兴趣的:(docker,mysql,linux)