千家信息网

PXC三节点集群系统搭建

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,1.概念:Percona Xtradb Cluster,简称PXC。是基于Galera插件的MySQL集群。详细原理请移步我的另外文章:理解PXC集群原理2.搭建:官方手册地址:https://www
千家信息网最后更新 2026年11月01日PXC三节点集群系统搭建

1.概念:

Percona Xtradb Cluster,简称PXC。是基于Galera插件的MySQL集群。

详细原理请移步我的另外文章:理解PXC集群原理


2.搭建:

官方手册地址:https://www.percona.com/doc/percona-xtradb-cluster/LATEST/index.html


环境:PXC101 IP:192.168.1.101 端口:3306 版本5.7 CentOS7

PXC102 IP:192.168.1.102 端口:3306 版本5.7 CentOS7

PXC103 IP:192.168.1.103 端口:3306 版本5.7 CentOS7


1.关闭系统防火墙

      #systemctl stop   firewalld      #systemctl disable  firewalld       #取消防火墙开机自启动

2.关闭selinux

      #vim /etc/selinux/config                 SELINUX=permissive      #getenforce                  #检查是否关闭

3.安装依赖,与相关诊断软件

      #yum install lsof socat telnet       #telnet用于检查端口

4.下载,解压二进制安装包(三个主机都执行):

(选择二进制安装包,可以避免各种编译或者Yum安装依赖关系,最节省时间,且日后升级方便)

101版本对应REHL系列版本,100对应DEBIAN系列版本,有区别

      #wget https://www.percona.com/downloads/Percona-XtraDB-Cluster-LATEST/Percona-XtraDB-Cluster-5.7.19-29.22-3/binary/tarball/Percona-XtraDB-Cluster-5.7.19-rel17-29.22.3.Linux.x86_64.ssl101.tar.gz -P /usr/local/src      #tar -zxf /usr/local/src/Percona-Xtra(...).tar.gz   -C /usr/local             #创建符号连接,即创建快捷方式,这也是日后方便升级的小技巧      #ln -s /usr/local/Percona-XtraDB-Cluster-5.7.19-rel17-29.22.3.Linux.x86_64.ssl101 /usr/local/mysql             #将可执行文件位置关联到路径中,方便像Yum安装的程序一样直接调用      #echo "PATH=$PATH:/usr/local/mysql/bin"|cat >>/etc/profile      #source /etc/profile

5.创建MySQL用户与用户组,权限相关(三个主机都执行):

      #useradd -d /usr/local/mysql -s /sbin/nologin -U -M mysql      #mkdir -p /data/mysql/3306/{data,logs,tmp}      #chown -R mysql.mysql /data/*

6.创建配置文件(三个主机都执行):

            cat << EOF >/data/mysql/3306/my.cnf            [client]             #省略            [mysql]             #省略            [mysqld]            basedir    = /usr/local/mysql            datadir    = /data/mysql/3306/data/            socket    = /data/mysql/3306/tmp/mysql3306.sock            pid-file = PXC3306.pid            #省略#            #log            log-bin = mysql-bin            sync_binlog = 1            innodb_flush_log_at_trx_commit = 1            #省略#            #InnoDB            innodb_file_per_table = 1            ##InnoDB IO            innodb_data_file_path = ibdata1:1G:autoextend            innodb_thread_concurrency = 0            #replication            server-id = 1013306                          #IP+PORT            master_info_repository = TABLE            relay_log_info_repository = TABLE            binlog_format = row            relay_log_recovery = 1            relay-log-purge = 1            ##GTID            gtid_mode = on                                                #必须            enforce_gtid_consistency = 1                                  #必须            #省略#            #PXC MODE            wsrep_provider=/usr/local/mysql/lib/libgalera_smm.so          #galera插件位置            wsrep_cluster_name=zrz                                        #集群名称            wsrep_cluster_address=gcomm://192.168.1.101,192.168.1.102,192.168.1.103   #群集所有主机地址            wsrep_node_name=PXC101                                        #本节点名称            wsrep_node_address=192.168.1.101                              #本节点IP            wsrep_sst_method=xtrabackup-v2                                #写集全量同步传输方式            wsrep_sst_auth=dba:123456                                     #写集传输验证用户与密码            pxc_strict_mode=ENFORCING                                     #必须,涉及到集群数据安全            binlog_format=ROW                                             #必须            default_storage_engine=InnoDB                                 #必须            innodb_autoinc_lock_mode=2                                    #自增锁离散分配自增主键                        EOF

先将上述配置文件中的PXC MODE相关配置项注释掉(前面加#)

    #/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/3306/my.cnf --initialize --user=mysql &

获取初始密码并更改root密码,创建全量写集传输用户

    #grep  -i password /data/mysql/3306/error.log          #mysqld --defaults-file=/data/mysql/3306/my.cnf &  #纯单实例方式启动MySQL    #mysql -u root -p                                #输入刚刚grep得到的密码                            #回车后输入刚刚查到的密码    >set password='123456';                               #更改root用户密码    >flush privileges;                    >create user dba@'localhost' identified by '123456';  #创建全量写集传输用户    >GRANT PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'dba'@'localhost';    >flush privileges;    >shutdown;                                            #关闭实例    >exit

8.启动PXC第一个节点

先将上一步注释掉的PXC MODE相关配置项重新启用(前面删掉#)

    #/usr/local/mysql/bin/mysqld--defaults-file=/data/mysql/3306/my.cnf --user=mysql --wsrep-new-cluster&

同时tail -f /data/mysql/3306/error.log会观察到:

9.启动第二个第三个节点

    #在第二个节点上执行    #/usr/local/mysql/bin/mysqld--defaults-file=/data/mysql/3306/my.cnf --user=mysql&
    #在第三个节点上执行    #/usr/local/mysql/bin/mysqld--defaults-file=/data/mysql/3306/my.cnf --user=mysql&

这时在第一个节点的错误节点上观测错误日志可以得到


在第二个节点或者第三个节点上都可以观测到:


OK,都启动成功。

3.查看WSREP写集同步

1.查看写集同步相关参数

在任意一个已经进入同步状态的实例上执行

>show global status like "%wsrep%";

输出如下:

2.检查同步情况

在实例3上创建数据库

>create database dba;

在实例1和实例2上都可以观测到:

>show database;



OK,到这里,我们就完成了整个PXC集群的创建

4.注意:

第一个节点启动时需添加 --wsrep-new-cluster参数。

而节点加入已经启动的集群,则不需要这个参数,按照正常启动方式即可。

更多疑难故障解答,请浏览我的下个帖子:PXC搭建故障疑难解答


附件:http://down.51cto.com/data/2368756
节点 集群 三个 实例 密码 版本 用户 同步 主机 方式 端口 传输 配置 参数 文件 检查 观测 二进制 位置 原理 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技企业 互联网科技工作委员会 互联网佳科技有限公司 互联网科技工作委员会主任 金融科技创新监管互联网金融 互联网金融公司科技 狮子座互联网科技 深圳艾佳互联网科技 互联网前沿科技 重庆科技学院互联网 山东吉时兔互联网科技有限公司 广州慧亚互联网科技怎么样 广州恒生互联网科技有限 深圳市优智互联网科技有限公司 银川新华互联网科技学校联系电话 特约风豹互联网科技为什么扣费 南博望互联网科技有限公司 科技互联网海报 广州梦谷互联网科技有限公司领导 科技信息时代互联网发展 新华互联网科技学院 互联网巨头反垄断金融科技 互联网 科技创新 有马互联网科技 隆华科技工业互联网 广州优美互联网科技 中国科技互联网公司收入 互联网科技实习生岗位职责 崇明区互联网教育科技诚信经营 互联网金融运营模式中的金融科技
0