Mysql8.0使用PXC

1、什么是PXC

PXC 是一套 MySQL 高可用集群解决方案,与传统的基于主从复制模式的集群架构相比 PXC 最突出特点就是解决了诟病已久的数据复制延迟问题,基本上可以达到实时同步。而且节点与节点之间,他们相互的关系是对等的。PXC 最关注的是数据的一致性,对待事物的行为时,要么在所有节点上执行,要么都不执行,它的实现机制决定了它对待一致性的行为非常严格,这也能非常完美的保证 MySQL 集群的数据一致性;

2、实践

首先准备三台实验机

|--------------|------|------|
| IP | 端口 | 角色 |
| 192.168.1.51 | 3306 | pxc1 |
| 192.168.1.52 | 3306 | pxc2 |
| 192.168.1.53 | 3306 | pxc3 |

1、从Percona 软件仓库安装(三台主机都要做)

RHEL 8 和其他 EL8 系统默认启用 MySQL 模块。此模块隐藏了 Percona 提供的软件包,并且必须禁用该模块才能使这些软件包可见。以下命令将禁用该模块:

复制代码
yum module disable mysql

在Red Hat 8 或更高版本上安装

yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm

percona-release setup pxc-80

yum install percona-xtradb-cluster

修改root用户密码和创建用于远程登录测试的用户:

systemctl start mysqld

tmp_pwd=(awk '/temporary password/ {print NF}'

mysql -uroot -p$tmp_pwd

登录之后修改root用户密码:alter user root@localhost identified with mysql_native_password by 'MySQL@123';

创建新用户:create user 'test'@'%' identified with mysql_native_password by 'MySQL@123';

赋予权限:grant all privileges on *.* to 'test'@'%' ;

记得在所有主机都需要执行一遍

systemctl stop mysqld

配置

1、不用登陆时输密码

user=root

password=MySQL@123

2、集群的所有IP地址

wsrep_cluster_address=gcomm://192.168.1.51,192.168.1.52,192.168.1.53

3.当前节点的IP地址

wsrep_node_address=192.168.40.52

4.集群名称

wsrep_cluster_name=pxc-cluster

5.当前节点名称

wsrep_node_name=pxc2

6.服务id(这里不能相同和其他节点),这里取IP主机号

server-id=52

启动pxc

#各个节点

rm -rf /var/lib/mysql/*.pem

#启动节点

for i in {51,53} ; do scp /var/lib/mysql/*.pem root@192.168.1.$i:/var/lib/mysql/; done

chown mysql:mysql /var/lib/mysql*.pem

以上准备工作就做好了,现在可以启动mysql了

systemctl start mysql@bootstrap.service

其他节点正常启动即可:systemctl start mysqld

然后可以登入pxc,然后可以使用以下命令验证结果

查询集群信息

show status like 'wsrep%';

相关推荐
huangyuchi.22 分钟前
【Linux系统】动静态库的制作
linux·运维·服务器·动态库·静态库·库的简单制作
闻不多24 分钟前
用llamaindex搭建GAR遇到400
android·运维·服务器
jim写博客1 小时前
Linux进程概念(四)环境地址变量
linux·运维·服务器
是小崔啊1 小时前
【Jenkins】01 - Jenkins安装
运维·jenkins
Nie_Xun2 小时前
ubuntu网络共享
linux·运维·ubuntu
天上掉下来个程小白2 小时前
Docker-14.项目部署-DockerCompose
运维·docker·微服务·容器
花小璇学linux2 小时前
imx6ull-驱动开发篇22——Linux 时间管理和内核定时器
linux·运维·驱动开发
Liang_GaRy5 小时前
心路历程-三个了解敲开linux的大门
linux·运维·服务器
星霜笔记6 小时前
Docker 部署 MariaDB+phpMyAdmin+Nextcloud 完整教程
运维·数据库·docker·容器·mariadb
一只栖枝9 小时前
华为 HCIE 大数据认证中 Linux 命令行的运用及价值
大数据·linux·运维·华为·华为认证·hcie·it