一、基本情况
本地虚拟机测试,在3台服务器上使用Docker Swarm搭建Mysql集群,实现一主两从的效果。
主节点:192.168.1.132
node-1:192.168.1.139
node-2:192.168.1.140
Percona XtraDB Cluster (PXC) 是一个基于 Percona Server for MySQL 的开源、高可用性的 MySQL 集群解决方案。它使用 Galera Cluster 技术,允许多个 MySQL 节点协同工作,提供水平扩展和高可用性。
PXC 使用 InnoDB 存储引擎作为默认存储引擎。
Docker Swarm集群节点初始化(略)。
二、Master管理节点配置
1、创建nerwork
docker network create -d overlay --attachable sharednet
docker network ls
复制
可以在从节点验证同步添加完成
docker network ls
[root@Node1 ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
b8ec7ad1fc53 bridge bridge local
2b7389a49c3c docker_gwbridge bridge local
2f604b57947e host host local
ov9l5tb6udg3 ingress overlay swarm
d9e27827037d none null local
0diog40psryu sharednet overlay swarm
复制
2、拉取pxc镜像并重新标记、删除源镜像(所有节点均需操作)
docker pull percona/percona-xtradb-cluster:5.7.34
docker tag percona/percona-xtradb-cluster:5.7.34 mysql:5.7.34
docker rmi percona/percona-xtradb-cluster:5.7.34
复制
3、创建数据卷
docker volume create v1
docker volume create backup
复制
可以在从节点验证同步添加完成
docker volume ls
[root@Master ~]# docker volume ls
DRIVER VOLUME NAME
local ab088d81b38ece678f9d1e86a36e35cd198f04dc2329d536d2ad7e7538825143
local backup
local d5b2246c7c5bd258924df21f3a266e26e4cc71769bc7f86b710adb480003c832
local nginx-config
local portainer_data
local v1
复制
4、主节点创建并运行容器
docker run --restart=always
-p 3306:3306
-e MYSQL_ROOT_PASSWORD=123456
-e CLUSTER_NAME=PXC
-e XTRABACKUP_PASSWORD=123456
-v v1:/var/lib/mysql
-v backup:/data
--privileged=true
--name=node1
--net=sharednet
-d mysql:5.7.34
复制
查看容器运行状态:
[root@Master ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
402e30dbe622 mysql:5.7.34 "/entrypoint.sh mysq…" 50 minutes ago Up 50 minutes 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 4567-4568/tcp node1
复制
三、SLAVE节点配置(2台)
1、拉取镜像(略);
2、加入集群
node 1执行:
docker run --restart=always \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-e CLUSTER_NAME=PXC \
-e XTRABACKUP_PASSWORD=123456 \
-v v1:/var/lib/mysql \
-v backup:/data \
--privileged=true \
--name=node1 \
--net=sharednet \
-d mysql:5.7.34
复制
node 2执行:
docker run --restart=always \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-e CLUSTER_NAME=PXC \
-e XTRABACKUP_PASSWORD=123456 \
-e CLUSTER_JOIN=node1 \
-v v1:/var/lib/mysql \
-v backup:/data \
--privileged=true \
--name=node2 \
--net=sharednet \
-d mysql:5.7.34
复制
四、验证
在master数据库创建一个test库,并导入sql;可以发现slave库也同步导入。
证明主从模式配置无问题,一切使用正常。
文章转载自巴韭特锁螺丝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
1779次阅读
2025-04-25 18:53:11
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
653次阅读
2025-04-25 15:30:58
墨天轮个人数说知识点合集
JiekeXu
467次阅读
2025-04-01 15:56:03
MySQL数据库当前和历史事务分析
听见风的声音
457次阅读
2025-04-01 08:47:17
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
399次阅读
2025-04-17 17:02:24
MySQL 9.3 正式 GA,我却大失所望,新特性亮点与隐忧并存?
JiekeXu
373次阅读
2025-04-15 23:49:58
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
345次阅读
2025-04-15 14:48:05
openHalo问世,全球首款基于PostgreSQL兼容MySQL协议的国产开源数据库
严少安
320次阅读
2025-04-07 12:14:29
记录MySQL数据库的一些奇怪的迁移需求!
陈举超
215次阅读
2025-04-15 15:27:53
[MYSQL] 服务器出现大量的TIME_WAIT, 每天凌晨就清零了
大大刺猬
190次阅读
2025-04-01 16:20:44