当前位置: 首页 > news >正文

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 的安装需要以下依赖项:

  1. perl(Digest::MD5)
  2. rsync
  3. 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,并查询

数据一致,说明集群同步正常。 

相关文章:

  • 【狂热算法篇】探秘图论之 Floyd 算法:解锁最短路径的神秘密码(通俗易懂版)
  • 为什么在 TypeScript 中需要使用 import type?——以 Babylon.js 为例
  • 无人机仿真、感知、规划
  • 千峰React:函数组件使用(2)
  • GIS地图、轨道交通与智能驾驶UI设计:未来交通的智能化探索
  • TPU(Tensor Processing Unit)详解
  • nnUNet V2修改网络——加入MultiResBlock模块
  • 1.25作业
  • 注意力机制进化史:从MHA到MoBA,新一代注意力机制的极限突破!
  • 计算机毕业设计SpringBoot+Vue.js母婴商城(源码+LW文档+PPT+讲解+开题报告)
  • Python zip 函数详解:用法、应用场景与高级技巧(中英双语)
  • 现代Web开发工具与技术全解析
  • 毕业项目推荐:基于yolov8/yolov5/yolo11的非机动车头盔佩戴检测识别系统(python+卷积神经网络)
  • 将产品照片(form.productPhotos)转为 JSON 字符串发送给后端
  • 【JavaEE进阶】图书管理系统 - 贰
  • C语言中的链表封装
  • 网络工程知识笔记
  • ChatGPT客户端无法在微软应用商店下载的解决方法
  • IntelliJ IDEA 控制台输出中文出现乱码
  • 基于stm32的多旋翼无人机(Multi-rotor UAV based on stm32)
  • 山西太原一小区发生爆炸,造成1人遇难21人受伤2人失联
  • 是否进行了及时有效处置?伤者情况如何?辽阳市相关负责人就饭店火灾事故答问
  • 匈牙利国会通过退出国际刑事法院的决定
  • 辽宁辽阳市白塔区一饭店发生火灾,事故已造成22人遇难3人受伤
  • 中共中央、国务院关于表彰全国劳动模范和先进工作者的决定
  • 网警侦破特大“刷量引流”网络水军案:涉案金额达2亿余元