欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linux定时备份docker安装的mysql数据库

程序员文章站 2024-03-11 19:26:31
...

mysql版本:8.0.16

ubuntu版本:Ubuntu 18.04.1 LTS

1.mysql备份命令

如果mysqldump备份命令出现(Warning: Using a password on the command line interface can be insecure.) 警告信息,可以在my.cnf中加上以下内容:

[mysqldump]
user=your_backup_user_name
password=your_backup_password

然后直接使用mysqldump命令的时候就可以不需要用户和密码了

mysqldump dataBaseName | gzip > /backup/mysql/dataBaseName _$(date +%Y%m%d_%H%M%S).sql.gz

如果可以使用用户密码的格式就用这种格式

mysqldump -uusername -ppassword dataBaseName | gzip > /backup/mysql/dataBaseName _$(date +%Y%m%d_%H%M%S).sql.gz

2.编写数据库备份脚本

[[email protected] /]# mkdir -p /backup
[[email protected] /]# vim /backup/back.sh 

脚本内容:

#!/bin/sh


docker exec -i mysql bash <<'EOF'
#创建数据库备份路径的文件夹
mkdir -p /backup/mysql
 
# 备份指定数据库
mysqldump dataBaseName  | gzip > /backup/mysql/dataBaseName _$(date +%Y%m%d_%H%M%S).sql.gz
 
exit
 
EOF
 
mkdir -p /backup
#从docker容器中将数据拷贝出来
docker cp mysql:/backup/mysql/ /backup/
#只保留七天内的数据
find /backup/mysql -name "knowledge_base_*.sql" -mtime +7 -type f | xargs rm -rf

3.给脚本文件设置权限,不然定时器执行不了脚本

[[email protected] backup]# chmod 755 /backup/back.sh 

4.设置定时器执行脚本(这里设置每天晚上两点备份数据库)

[[email protected] /]# crontab -e

 

* 2 * * *  /backup/back.sh

 

参考链接:https://blog.51cto.com/13941177/2310406

                 https://blog.csdn.net/MR1269427885/article/details/82978311