前面为生产环境搭建了 mysql mha环境,接下来试着架构个docker-compose版的pxc集群mysql5.7。
相关介绍可参考:www.cnblogs.com/kevingrace/…
1. docker-compose.yml
version : '3.7'
services:
db1:
container_name: db1
image: percona/percona-xtradb-cluster:5.7.34-31.51
privileged: true
networks:
net1:
ipv4_address: 172.16.238.2
environment:
- "CLUSTER_NAME=JWSPXC"
- "XTRABACKUP_PASSWORD=db123456"
- "MYSQL_ROOT_PASSWORD=db123456"
- "TZ=Asia/Shanghai"
ports:
- "30001:3306"
volumes:
- ./data/v1/data:/var/lib/mysql
- ./data/v1/backup:/data
db2:
container_name: db2
image: percona/percona-xtradb-cluster:5.7.34-31.51
privileged: true
networks:
net1:
ipv4_address: 172.16.238.3
environment:
- "CLUSTER_NAME=JWSPXC"
- "XTRABACKUP_PASSWORD=db123456"
- "TZ=Asia/Shanghai"
- "CLUSTER_JOIN=db1"
ports:
- "30002:3306"
volumes:
- ./data/v2/data:/var/lib/mysql
- ./data/v2/backup:/data
depends_on:
- db1
db3:
container_name: db3
image: percona/percona-xtradb-cluster:5.7.34-31.51
privileged: true
networks:
net1:
ipv4_address: 172.16.238.4
environment:
- "CLUSTER_NAME=JWSPXC"
- "XTRABACKUP_PASSWORD=db123456"
- "TZ=Asia/Shanghai"
- "CLUSTER_JOIN=db1"
ports:
- "30003:3306"
volumes:
- ./data/v3/data:/var/lib/mysql
- ./data/v3/backup:/data
depends_on:
- db1
db4:
container_name: db4
image: percona/percona-xtradb-cluster:5.7.34-31.51
privileged: true
networks:
net1:
ipv4_address: 172.16.238.5
environment:
- "CLUSTER_NAME=JWSPXC"
- "XTRABACKUP_PASSWORD=db123456"
- "TZ=Asia/Shanghai"
- "CLUSTER_JOIN=db1"
ports:
- "30004:3306"
volumes:
- ./data/v4/data:/var/lib/mysql
- ./data/v4/backup:/data
depends_on:
- db1
db5:
container_name: db5
image: percona/percona-xtradb-cluster:5.7.34-31.51
privileged: true
networks:
net1:
ipv4_address: 172.16.238.6
environment:
- "CLUSTER_NAME=JWSPXC"
- "XTRABACKUP_PASSWORD=db123456"
- "TZ=Asia/Shanghai"
- "CLUSTER_JOIN=db1"
ports:
- "30005:3306"
volumes:
- ./data/v5/data:/var/lib/mysql
- ./data/v5/backup:/data
depends_on:
- db1
networks:
net1:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.16.238.0/24
2. 启动方式
首先,先启动db1
docker-compose up -d db1
其次,通过mysql客户端工具(如:MySQL Workbench),连接db1后执行下列SQL文
供haproxy中间件使用(目前这部分以后再改进)
create user 'haproxy'@'%' identified by '';
flush privileges;
然后,启动剩下节点
docker-compose up -d db2 db3 db4 db5