docker安装双主mysql
时间: 2023-10-19 19:34:43 浏览: 86
您好!要在 Docker 上安装双主 MySQL,您可以按照以下步骤进行操作:
1. 首先,确保您已经安装了 Docker。如果还没有安装,请根据您的操作系统进行安装。
2. 创建一个用于存储数据库文件的目录,例如 `mysql-data`:
```
mkdir mysql-data
```
3. 创建一个网络以便容器之间进行通信:
```
docker network create mysql-network
```
4. 运行第一个 MySQL 容器作为主服务器1:
```
docker run -d --name=mysql-master1 --net=mysql-network -e MYSQL_ROOT_PASSWORD=your_root_password -e MYSQL_REPLICATION_USER=repl -e MYSQL_REPLICATION_PASSWORD=repl_password -v /path/to/mysql-data:/var/lib/mysql mysql
```
请将 `your_root_password` 替换为您希望设置的 root 密码,将 `/path/to/mysql-data` 替换为步骤 2 中创建的目录。
5. 运行第二个 MySQL 容器作为主服务器2:
```
docker run -d --name=mysql-master2 --net=mysql-network -e MYSQL_ROOT_PASSWORD=your_root_password -e MYSQL_REPLICATION_USER=repl -e MYSQL_REPLICATION_PASSWORD=repl_password -v /path/to/mysql-data:/var/lib/mysql mysql
```
6. 创建一个用于复制的用户并授予适当的权限:
```
docker exec -it mysql-master1 mysql -uroot -p -e "GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'repl_password'; FLUSH PRIVILEGES;"
```
7. 配置主从复制:
- 获取主服务器1的 IP 地址:
```
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql-master1
```
- 获取主服务器2的 IP 地址:
```
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql-master2
```
- 在主服务器2上,执行以下命令并替换 `<master1_ip>` 为主服务器1的 IP 地址:
```
docker exec -it mysql-master2 mysql -uroot -p -e "CHANGE MASTER TO MASTER_HOST='<master1_ip>', MASTER_USER='repl', MASTER_PASSWORD='repl_password';"
```
- 在主服务器1上,执行以下命令并替换 `<master2_ip>` 为主服务器2的 IP 地址:
```
docker exec -it mysql-master1 mysql -uroot -p -e "CHANGE MASTER TO MASTER_HOST='<master2_ip>', MASTER_USER='repl', MASTER_PASSWORD='repl_password';"
```
8. 启动主从复制:
- 在主服务器2上,执行以下命令:
```
docker exec -it mysql-master2 mysql -uroot -p -e "START SLAVE;"
```
- 在主服务器1上,执行以下命令:
```
docker exec -it mysql-master1 mysql -uroot -p -e "START SLAVE;"
```
现在,您已经成功在 Docker 上安装了双主 MySQL。请确保根据您的需求进行适当的配置和调整。
阅读全文