架构图
+-------------------+ +--------------------+ +--------------------+
| | | | | |
| MySQL Master |--------------------------| MySQL Slave 1 |--------------------------| MySQL Slave 2 |
| IP: 172.18.0.10 | | IP: 172.18.0.11 | | IP: 172.18.0.12 |
| Port: 3306 | | Port: 3306 | | Port: 3306 |
| Data Dir: /data/mysql/master | Data Dir: /data/mysql/slave1 | Data Dir: /data/mysql/slave2 |
+-------------------+ +--------------------+ +--------------------+
配置文件复制
启动临时 MySQL 容器用于提取配置文件
我们先启动一个临时的 MySQL 容器,用于从中拷贝默认配置文件:
docker run -d --name mysql-temp mysql:8.0
等待几秒后,执行以下命令将配置文件复制到本地:
mkdir -p /data/mysql/conf
docker cp mysql-temp:/etc/my.cnf /data/mysql/conf/my.cnf
停止并删除临时容器:
docker stop mysql-temp && docker rm mysql-temp
创建主从节点的目录结构
mkdir -p /data/mysql/{master,slave1,slave2}/{conf,data}
将配置文件分别复制到对应的目录中:
cp /data/mysql/conf/my.cnf /data/mysql/master/conf/
cp /data/mysql/conf/my.cnf /data/mysql/slave1/conf/
cp /data/mysql/conf/my.cnf /data/mysql/slave2/conf/