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.
所以通过配置文件注入密码。

浙公网安备 33010602011771号