docker 配置mysql 主从
时间: 2023-11-19 19:13:57 浏览: 107
docker配置mysql主从复制.docx
要配置 MySQL 主从复制在 Docker 中,你可以按照以下步骤进行操作:
1. 首先,创建一个用于存储 MySQL 数据的文件夹。例如,创建一个名为 `mysql-data` 的文件夹:
```
mkdir mysql-data
```
2. 创建一个名为 `mysql-master` 的容器,并启动一个 MySQL 实例作为主数据库:
```
docker run -d --name mysql-master -v /path/to/mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=<root密码> -e MYSQL_DATABASE=<数据库名> mysql:latest
```
3. 创建一个名为 `mysql-slave` 的容器,并连接到主数据库的网络中。确保将 `<master_IP>` 替换为主数据库容器的 IP 地址:
```
docker run -d --name mysql-slave --network container:mysql-master -e MYSQL_ROOT_PASSWORD=<root密码> -e MYSQL_DATABASE=<数据库名> mysql:latest
```
4. 检查容器是否正常运行:
```
docker ps
```
5. 在主数据库中进行配置。进入 `mysql-master` 容器内部:
```
docker exec -it mysql-master bash
```
6. 进入 MySQL 命令行:
```
mysql -uroot -p<root密码>
```
7. 在 MySQL 命令行中执行以下命令来配置主数据库:
```
GRANT REPLICATION SLAVE ON *.* TO '<用户名>'@'<从节点IP>' IDENTIFIED BY '<密码>';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;
```
8. 记下 `SHOW MASTER STATUS;` 命令的输出内容,包括 `File` 和 `Position` 的值。
9. 在从数据库中进行配置。进入 `mysql-slave` 容器内部:
```
docker exec -it mysql-slave bash
```
10. 进入 MySQL 命令行:
```
mysql -uroot -p<root密码>
```
11. 在 MySQL 命令行中执行以下命令来配置从数据库:
```
CHANGE MASTER TO MASTER_HOST='<主节点IP>', MASTER_USER='<用户名>', MASTER_PASSWORD='<密码>', MASTER_LOG_FILE='<主节点的File值>', MASTER_LOG_POS=<主节点的Position值>;
START SLAVE;
```
12. 检查主从复制是否正常运行:
```
SHOW SLAVE STATUS\G
```
完成上述步骤后,你应该已经成功配置了 Docker 中的 MySQL 主从复制。请确保在命令中替换 `<root密码>`、`<数据库名>`、`<用户名>`、`<从节点IP>`、`<密码>`、`<主节点IP>`、`<主节点的File值>` 和 `<主节点的Position值>` 为实际的值。
阅读全文