Docker部署MySQL-PXC5.6高可用集群
| 节点 | IP |
|---|---|
| node1 | 10.3.192.29 |
| node2 | 10.3.192.30 |
| node3 | 10.3.192.31 |
官方文档
https://www.percona.com/doc/percona-xtradb-cluster/5.6/index.html
Benefits:
- When you execute a query, it is executed locally on the node. All data is available locally, no need for remote access.
- No central management. You can loose any node at any point of time, and the cluster will continue to function.
- Good solution for scaling a read workload. You can put read queries to any of the nodes.
本集群采用多主同步结构(multi-master),部署3个master节点,任意一个节点上都可以进行读写操作。
集群特性
- 实现mysql数据库集群架构的高可用性和数据的强一致性。
- 完成了真正的多节点读写的集群方案。
- 改善了传统意义上的主从复制延迟问题,真正达到了实时同步。
- 新加入的节点可以自动部署,无须提供手动备份,维护起来很方便。
- 由于是多节点写入,所以数据库故障切换很容易。
集群架构

部署步骤
node1
./docker-compose -f MySQL-PXC-MASTER.yaml up -d
version: "3.7"
services:
MySQLPXC_node:
image: 1573927589/mysql:percona-xtradb-cluster-5.6.50
network_mode: "host"
restart: always
environment:
MYSQL_ROOT_PASSWORD: "Single&2020"
CLUSTER_NAME: "PXC"
XTRABACKUP_PASSWORD: 123456
MYSQL_USER: "single"
MYSQL_PASSWORD: "Single&2020"
MYSQL_DATABASE: "scplatform_node"
command: [
'--character-set-server=utf8mb4',
'--collation-server=utf8mb4_unicode_ci'
]
volumes:
- mysqldata:/var/lib/mysql
node2
export MASTER_IP=10.3.192.29
docker-compose -f MySQL-PXC-node.yaml up -d
version: "3.7"
services:
MySQLPXC_node:
image: 1573927589/mysql:percona-xtradb-cluster-5.6.50
network_mode: "host"
restart: always
environment:
MYSQL_ROOT_PASSWORD: "Single&2020"
CLUSTER_NAME: "PXC"
XTRABACKUP_PASSWORD: 123456
CLUSTER_JOIN: $MASTER_IP
MYSQL_USER: "single"
MYSQL_PASSWORD: "Single&2020"
command: [
'--character-set-server=utf8mb4',
'--collation-server=utf8mb4_unicode_ci'
]
volumes:
- mysqldata:/var/lib/mysql
node3
和node2一样
集群扩容
增加一个部署节点即可
export MASTER_IP=10.3.192.29
docker-compose -f MySQL-PXC-node.yaml up -d
集群状态查看
show status like '%wsrep%';



浙公网安备 33010602011771号