Docker-Compose部署MySQL主从复制详细过程
时间: 2024-12-11 15:39:38 浏览: 22
Docker Compose用于管理和部署多容器应用程序,通过YAML配置文件描述服务之间的依赖关系。以下是使用Docker Compose部署MySQL主从复制的步骤:
1. **创建`docker-compose.yml`文件**:
创建一个YAML文件,例如`docker-compose.yml`,在这个文件里定义MySQL主节点、从节点以及数据卷共享。
```yaml
version: '3'
services:
master:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_DATABASE: your_database_name
volumes:
- master_data:/var/lib/mysql
slave:
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_DATABASE: your_database_name
MYSQL_USER: replicator
MYSQL_PASSWORD: replicator_password
MYSQL_HOST: master # 连接到主节点的IP或域名
volumes:
- slave_data:/var/lib/mysql
volumes:
master_data:
slave_data:
```
2. **启动并设置主从**:
使用`docker-compose up -d`命令初始化并后台运行数据库服务。在Master上运行`CREATE USER`和`GRANT REPLICATION SLAVE`权限给从节点使用的用户(这里是`replicator`)。
3. **配置主节点**:
登录到Master MySQL服务器,执行以下命令来设置主复制,包括更改binlog日志位置和允许连接到slave:
```sql
FLUSH PRIVILEGES;
CHANGE MASTER TO MASTER_HOST='master', MASTER_USER='your_username', MASTER_PASSWORD='your_password';
START SLAVE;
```
4. **监控和测试**:
确保主从同步正常工作,你可以使用`SHOW SLAVE STATUS\G`查看从库的状态,并定期检查数据一致性。
5. **故障恢复**:
如果主从节点之一出现问题,记得更新`docker-compose.yml`中的`MYSQL_HOST`设置,恢复后再执行相应的主复制设置步骤。
阅读全文