mysql从节点报错_CentOS7.9 下 MySQL 之 PXC 集群部署【Docker+多机多节点】

本文介绍了在CentOS7.9系统中使用Docker部署Percona XtraDB Cluster (PXC)的详细过程,包括集群环境配置、端口开放、Docker Swarm集群创建、PXC节点的创建与加入,以及遇到的报错排查。PXC集群实现了多节点间的强一致性和数据同步,适用于高可用性和数据一致性的场景。
摘要由CSDN通过智能技术生成

背景

最近在进行 MySQL 集群搭建测试的研究中

对于业界主流方案自然不能跳过

在此,整理成完整的文章,希望道友能得到参考价值 …

【注】:Percona XtraDB Cluster(简称 PXC 集群) —— 业界主流的 MySQL 集群方案

★ PXC 集群介绍

PXC 是基于 Galera 协议的高可用集群方案。

可以实现多个节点间的数据同步复制以及读写,并且可保障数据库的服务高可用及数据强一致性

PXC 最大的优势:强一致性、无同步延迟 (牺牲性能)

环境

CentOS版本: CentOS Linux release 7.9.2009 (Core)

MySQL 版本: 5.7.32

PXC 版本 : percona/percona-xtradb-cluster 最新

前期准备

1). 三台 Vmware 虚拟机

我以三台创建运行的 CentOS7 作为宿主机进行配置操作

虚拟机 ip

角色

192.168.80.221

Docker Swarm 管理节点,Master 节点

192.168.80.222

worker 节点

192.168.80.223

worker 节点

2). 开启四个 PXC 环境所涉及的端口:

3306:# mysql 实例端口

4567:# PXC cluster 相互通讯的端口

4444:# 用于 SST(State Snapshot Transfer): 全量传输

4568:# 用于 IST(Incremental state Transfer):增量传输传送

以鄙人使用宝塔面板操作为例,注意以上端口的开启:

b223d1396a6509a52ffa95b88d116b42.png

3). 部署前建议关闭 SELINUX、将 MySQL 数据库服务停止

安全增强型 Linux(Security-Enhanced Linux)SELinux 主要由美国国家安全局开发

一种方法【荐】,永久关闭 Selinux:

"vi /etc/selinux/config" 把 "SELINUX" 属性值设置成 disabled,然后 reboot 重启

另一种方法,或者执行命令 Linux 临时关闭 Selinux: "setenforce 0"

4). 配置 ntp 服务,确保时间同步

[root@localhost ~]# yum -y install ntp ntpdate

[root@localhost ~]# ntpdate 0.asia.pool.ntp.org

[root@localhost ~]# hwclock --systohc

[root@localhost ~]# date

2021年 01月 08日 星期五 09:54:23 CST

5). 创建 Docker Swarm 集群

为了使三台服务器进行连接,如果没有安装 "docker",需要先执行命令: yum install -y docker

【拓展】:

查看 docker 版本: docker -v

判断 docker 是否安装成功:docker

docker 的启动/关闭/重启:service docker start、service docker stop、service docker restart

然后,要在各个服务器中,开放所需的三个端口号

(开放后重启 docker 服务 : service docker restart)

2377:用于集群管理通信的TCP端口

4789:用于容器覆盖网络

7946:用于容器网络发现

firewall-cmd --zone=public --add-port=2377/tcp --permanent

firewall-cmd --zone=public --add-port=4789/tcp --permanent

firewall-cmd --zone=public --add-port=4789/udp --permanent

firewall-cmd --zone=public --add-port=7946/tcp --permanent

firewall-cmd --zone=public --add-port=7946/udp --permanent

firewall-cmd --reload

d53263d84d86802cc577923a198ebd11.png

注意,以上的操作,要对三台虚拟机,全部进行配置哦!!!

选择一台服务器作为管理集群的服务器,此处,我选择的是 【192.168.80.221】

运行命令:docker swarm init

则会得到一个形如下面的管理者口令

[root@localhost /]# docker swarm init

Swarm initialized: current node (g706owlgszx493xhpsb44k9t0) is now a manager.

To add a worker to this swarm, run the following command:

docker swarm join \

--token SWMTKN-1-4ea65xsm8xsyhrmn42qg125b10dxtcmt80gnuijnnskddces2n-6fok68mg86nf5lkah1wnnj6ra \

192.168.80.221:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

然后在其他两个虚拟服务器中( 192.168.80.222、19

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值