Docker 容器内的 MySQL 数据备份

MySQL 运行于 Docker 容器中, 挂载数据文件和配置文件至本机

需求是实现数据文件的自动备份操作

思路:提供一个 API ,用于接收备份请求及发送备份的数据文件。

前提:容器的启动命令为

docker run --name mysql-test -v /docker/mysql/conf:/etc/mysql/conf.d -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123123 -d --network energys mysql

挂载容器中的 MySQL 的配置文件夹 /etc/mysql/conf.d 到本机目录 /docker/mysql/conf;

挂载容器中的 MySQL 的数据文件夹 /var/lib/mysql 到本机目录 /docker/mysql/data;

本机受到接收到数据库备份请求后,执行命令

docker exec mysql-test bash -c 'mysqldump --defaults-file=/etc/mysql/conf.d/my.cnf test > /var/lib/mysql/backup.sql'

生成备份文件 backup.sql 到指定目录 /var/lib/mysql/ —— Docker 中 MySQL 的数据文件目录。

命令中的 --defaults-file=/etc/mysql/conf.d/my.cnf 通过一个配置文件指定 MySQL 的用户和密码。

配置文件中添加

[mysqldump]
user = root
password = xxxxx

如果直接在命令中写明密码,会报错

mysqldump: [Warning] Using a password on the command line interface can be insecure.

所以通过配置文件注入密码。

posted @ 2023-03-29 18:35  Boiiea  阅读(1230)  评论(0)    收藏  举报