docker compose部署mysql主从
时间: 2023-11-07 09:01:25 浏览: 189
要通过Docker Compose部署MySQL主从复制,您可以按照以下步骤进行操作:
1. 首先,创建一个名为`docker-compose.yml`的文件,用于定义您的Docker服务配置。在该文件中,定义两个MySQL容器,一个作为主服务器,另一个作为从服务器。示例配置如下:
```yaml
version: '3.8'
services:
master:
image: mysql:latest
restart: always
environment:
MYSQL_ROOT_PASSWORD: your_root_password
volumes:
- master-data:/var/lib/mysql
slave:
image: mysql:latest
restart: always
environment:
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_REPLICATION_MODE: slave
MYSQL_MASTER_HOST: master
MYSQL_MASTER_PORT: 3306
MYSQL_MASTER_USER: root
MYSQL_MASTER_PASSWORD: your_root_password
depends_on:
- master
volumes:
- slave-data:/var/lib/mysql
volumes:
master-data:
slave-data:
```
在上面的示例中,我们定义了两个服务,`master`和`slave`。`master`服务使用了最新版本的MySQL镜像,并设置了`MYSQL_ROOT_PASSWORD`环境变量来设置root密码。`slave`服务也使用了最新版本的MySQL镜像,并设置了`MYSQL_ROOT_PASSWORD`和`MYSQL_REPLICATION_MODE`环境变量,用于配置从服务器的复制模式。`MYSQL_MASTER_HOST`指定了主服务器的名称,`MYSQL_MASTER_PORT`指定了主服务器的端口,`MYSQL_MASTER_USER`和`MYSQL_MASTER_PASSWORD`指定了连接主服务器所需的凭据。
2. 保存`docker-compose.yml`文件,并在终端中导航到该文件所在的目录。
3. 运行以下命令启动Docker服务:
```bash
docker-compose up -d
```
这将根据您在`docker-compose.yml`文件中定义的配置创建和启动两个MySQL容器。
4. 等待一段时间,以确保两个MySQL容器成功启动和连接。可以使用以下命令检查容器状态:
```bash
docker-compose ps
```
您应该看到`master`和`slave`容器都处于运行状态。
5. 最后,您可以登录到`master`容器中的MySQL,并执行一些额外的配置来设置主从复制。例如,您可以执行以下命令:
```bash
docker-compose exec master mysql -uroot -pyour_root_password -e "GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%' IDENTIFIED BY 'replication_password'; FLUSH PRIVILEGES;"
```
上述命令将为复制配置添加一个名为`replication_user`的用户,并设置其密码为`replication_password`。
至此,您已成功通过Docker Compose部署了MySQL主从复制。
阅读全文