mysql5.7 docker 自动备份
时间: 2023-12-26 11:28:45 浏览: 158
mysql 自动备份
5星 · 资源好评率100%
在Docker环境下,可以使用定时任务和脚本来实现MySQL 5.7的自动备份。以下是一个示例:
1. 创建一个名为`backup.sh`的备份脚本,并将其保存在Docker容器中的任意位置,例如`/backup/backup.sh`。
```shell
#!/bin/bash
# 备份文件保存路径
BACKUP_DIR="/backup"
# MySQL连接信息
MYSQL_HOST="mysql"
MYSQL_PORT="3306"
MYSQL_USER="root"
MYSQL_PASSWORD="password"
MYSQL_DATABASE="database"
# 备份文件名
BACKUP_FILE="${BACKUP_DIR}/backup_$(date +%Y%m%d%H%M%S).sql"
# 执行备份命令
mysqldump -h ${MYSQL_HOST} -P ${MYSQL_PORT} -u ${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE} > ${BACKUP_FILE}
```
2. 在Dockerfile中添加以下内容,以将备份脚本复制到Docker容器中。
```dockerfile
COPY backup.sh /backup/backup.sh
RUN chmod +x /backup/backup.sh
```
3. 构建并运行MySQL 5.7的Docker容器。
```shell
docker build -t mysql57 .
docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password mysql57
```
4. 创建一个名为`crontab.txt`的定时任务文件,并将其保存在Docker容器中的任意位置,例如`/backup/crontab.txt`。
```shell
# 每天凌晨3点执行备份任务
0 3 * * * /backup/backup.sh
```
5. 在Dockerfile中添加以下内容,以将定时任务文件复制到Docker容器中,并安装cron。
```dockerfile
COPY crontab.txt /backup/crontab.txt
RUN crontab /backup/crontab.txt
RUN apt-get update && apt-get -y install cron
```
6. 重新构建并运行MySQL 5.7的Docker容器。
```shell
docker build -t mysql57 .
docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password mysql57
```
现在,MySQL 5.7的Docker容器将在每天凌晨3点自动执行备份任务,并将备份文件保存在容器中的`/backup`目录下。
阅读全文