Percona XtraDB Cluster (PXC) 8.0的搭建
1、准备三台机器
192.168.242.139 centos1
192.168.242.140 centos2
192.168.242.141 centos3
2、 编辑/etc/hosts文件,配置主机名解析
hostnamectl set-hostname centos1 # 在centos1上执行
hostnamectl set-hostname centos2 # 在centos2上执行
hostnamectl set-hostname centos3 # 在centos3上执行
3、测试三台机器之间的连通性
4、关闭防火墙或配置规则
systemctl stop firewalld
systemctl disable firewalld
5、访问Percona 官方下载页面 下载PXC的RPM包:
6、使用yum localinstall
命令来安装之前下载的RPM包。
确保当前目录下有以下RPM包:
安装PXC及其依赖项
percona-xtrabackup-80-8.0.35-30.1.el7.x86_64.rpm
的安装需要以下依赖项:
perl(Digest::MD5)
rsync
zstd
用yum安装rsync和
perl-Digest-MD5
yum install rsync perl-Digest-MD5 -y
验证是否安装成功
rpm -q rsync perl-Digest-MD5
手动编译安装zstd
进入 /pxc
目录并解压 zstd-1.5.6.tar.gz
:
cd /pxc
tar -xvzf zstd-1.5.6.tar.gz
cd zstd-1.5.6
运行以下命令编译并安装 zstd
:
make
make install
7、配置编辑文件
编辑/etc/my.cnf
[mysqld]
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address=gcomm://192.168.242.139,192.168.242.140,192.168.242.141
wsrep_node_address=192.168.242.139 # 替换为当前节点的实际 IP 地址
wsrep_node_name=centos1 # 替换为唯一的节点名称
wsrep_sst_method=xtrabackup-v2
binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
port=3306
socket=/var/lib/mysql/mysql.sock
8、初始化数据库(仅centos1)
对于第一个节点centos1
mysqld --initialize-insecure --user=mysql # 不设置root密码
mysqld --initialize --user=mysql # 设置随机生成的root密码
查看随机root密码
grep 'temporary password' /var/log/mysqld.log
启动集群
/usr/sbin/mysqld --wsrep-new-cluster --user=mysql --basedir=/usr --datadir=/var/lib/mysql --pid-file=/var/run/mysqld/mysqld.pid
创建SST用户(仅centos1)
首次启动集群之前,需要创建一个用于State Snapshot Transfer (SST)的用户。这个用户将被用来在新加入的节点同步数据。
CREATE USER 'sstuser'@'%' IDENTIFIED BY '123456';
GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'sstuser'@'%';
FLUSH PRIVILEGES;
9、 配置和启动其他节点
对于centos2和centos3同样配置/etc/my.cnf文件
启动MySQL
systemctl start mysql
检查集群转态
SHOW STATUS LIKE 'wsrep%';
# wsrep_ready: 应为 ON
# wsrep_cluster_status: 应为 Primary
# wsrep_cluster_size: 应显示集群中所有节点的数量3
# wsrep_connected: 应为 ON
10、测试集群功能
创建测试数据库
在其他节点上连接到mysql,并查询
数据一致,说明集群同步正常。