基于Docker的MySQL双主集群搭建实战
以下是一个基于Docker的MySQL双主集群搭建的简化版示例:
- 安装Docker。
- 创建
docker-compose.yml
文件,内容如下:
version: '3'
services:
mysql1:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_REPLICATION_MODE: master
MYSQL_REPLICATION_USER: repl
MYSQL_REPLICATION_PASSWORD: password
volumes:
- mysql1-data:/var/lib/mysql
ports:
- "33061:3306"
mysql2:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_REPLICATION_MODE: master
MYSQL_REPLICATION_USER: repl
MYSQL_REPLICATION_PASSWORD: password
volumes:
- mysql2-data:/var/lib/mysql
ports:
- "33062:3306"
volumes:
mysql1-data:
mysql2-data:
- 在
docker-compose.yml
文件所在目录下运行以下命令启动集群:
docker-compose up -d
配置MySQL实例间的主从复制。
- 登录到MySQL1:
mysql -h localhost -P 33061 -uroot -proot
- 创建复制用户:
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
- 授权复制用户:
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
- 获取二进制日志位置:
SHOW MASTER STATUS;
- 登录到MySQL1:
配置MySQL2以指向MySQL1:
- 登录到MySQL2:
mysql -h localhost -P 33062 -uroot -proot
- 设置主服务器:
CHANGE MASTER TO MASTER_HOST='mysql1', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='log-bin.000001', MASTER_LOG_POS=154;
- 启动从服务器复制进程:
START SLAVE;
- 登录到MySQL2:
验证复制是否正常工作。
- 在MySQL1上创建新数据库或表。
- 在MySQL2上查询以确认更改。
这个示例演示了如何使用Docker和docker-compose来快速搭建一个简单的MySQL双主集群。在实际部署时,还需要考虑更多的安全和高可用性配置,比如网络配置、密码管理、故障转移策略等。
评论已关闭