本文共 2328 字,大约阅读时间需要 7 分钟。
首先,我们需要从官方镜像仓库下载Percona XtraDB Cluster的Docker镜像:
docker pull percona/percona-xtradb-cluster
为了确保集群节点的安全性,我们将PXC集群部署在Docker内部网络中。创建一个私有网络并将宿主机的端口映射到集群节点:
docker network create --subnet=172.18.0.0/24 net1
由于PXC集群需要持久化存储,我们使用Docker卷来存储数据库数据。创建多个数据卷以支持集群中的各个节点:
docker volume create --name volume1docker volume create --name volume2docker volume create --name volume3docker volume create --name volume4docker volume create --name volume5
启动第一个集群节点,并将其映射到宿主机的端口:
docker run -d -p 3306:3306 \ -v volume1:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ -e CLUSTER_NAME=PXC \ -e XTRABACKUP_PASSWORD=123456 \ --privileged \ --name node1 \ --net=net1 \ --ip 172.18.0.2 \ percona/percona-xtradb-cluster
依次启动其他集群节点,确保每个节点都连接到第一个节点(node1):
docker run -d -p 3307:3306 \ -v volume2:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ -e CLUSTER_NAME=PXC \ -e XTRABACKUP_PASSWORD=123456 \ -e CLUSTER_JOIN=node1 \ --privileged \ --name node2 \ --net=net1 \ --ip 172.18.0.3 \ percona/percona-xtradb-clusterdocker run -d -p 3308:3306 \ -v volume3:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ -e CLUSTER_NAME=PXC \ -e XTRABACKUP_PASSWORD=123456 \ -e CLUSTER_JOIN=node1 \ --privileged \ --name node3 \ --net=net1 \ --ip 172.18.0.4 \ percona/percona-xtradb-clusterdocker run -d -p 3309:3306 \ -v volume4:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ -e CLUSTER_NAME=PXC \ -e XTRABACKUP_PASSWORD=123456 \ -e CLUSTER_JOIN=node1 \ --privileged \ --name node4 \ --net=net1 \ --ip 172.18.0.5 \ percona/percona-xtradb-clusterdocker run -d -p 3310:3306 \ -v volume5:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ -e CLUSTER_NAME=PXC \ -e XTRABACKUP_PASSWORD=123456 \ -e CLUSTER_JOIN=node1 \ --privileged \ --name node5 \ --net=net1 \ --ip 172.18.0.6 \ percona/percona-xtradb-cluster
使用MySQL客户端(如Navicat)连接到任意一个集群节点(如node1:172.18.0.2:3306),创建数据库并进行数据操作。
在完成操作后,检查其他节点(如node2:172.18.0.3:3306)是否能够正确同步数据,确保集群功能正常。
通过以上步骤,您已成功搭建了一个基于Percona XtraDB Cluster的MySQL集群,实现了高性能、高可用性和数据同步功能。
转载地址:http://nenk.baihongyu.com/