PXC集群搭建案例

版权声明:文章版权均归作者,技术仅供参考。 https://blog.csdn.net/weixin_42226171/article/details/85512213

什么是PXC集群:
Percona XtraDB Cluster(下文简称PXC集群)提供了MySQL高可用的一种实现方法。PXC集群以节点组成(最少3节点,便于故障恢复,),每个节点都是基于常规的 MySQL/Percona Server,意味着你可以从集群中分离出某节点单独使用。集群中每个节点都包含完整的数据。
PXC集群主要由两部分组成:Percona Server with XtraDB和Write Set Replication patches(使用了Galera library,一个通用的用于事务型应用的同步、多主复制插件)。
PXC的优点:
1、同步复制
2、支持多主复制
3、支持并行复制
使用用环境CentOS7.5系统
软件包:mysql5.7版本
Persona:percona-release-0.1-4.noarch.rpm
要求:
1.关闭SElinux
2.防火墙需要开放端口 3306 、4444、4567、4568
firewall-cmd --add-port=4444/tcp --permanent #开放了4444端口
开放完4个端口后,需要重新加载防火墙规则
firewall-cmd --reload
(注意:如果使用的是云主机,安全组规则要开起3306,4444,4567,4568端口)
3.卸载MySQL
(注意:以上步骤每个节点都要做一次)

安装:(每个节点安装和配置都是一样的,需要每个节点都要做):
1.安装Persona仓库

yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm

2.安装PXC
yum install Percona-XtraDB-Cluster-57

3.开启PXC服务

service mysql start

4.修改数据库密码

grep ‘temporary password’ /var/log/mysqld.log

登录MySQL数据库

mysql -u root -p

输入临时密码

登录成功后修改密码

ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘你的密码’;
(注意:如果遇到输入!@¥%&*等特殊符号,可以-p后选择交互式输入密码)

5、停止MySQL服务

service mysql stop (某些版本使用mysqld)

6.配置节点

vi /etc/percona-xtradb-cluster.conf.d/wsrep.cnf

配置文件参考

Cluster connection URL contains IPs of nodes

#If no IP is found, this implies that a new cluster needs to be created,
#in order to do that you need to bootstrap this node

#集群中节点的IP地址(本机填最后)
wsrep_cluster_address=gcomm://ip地址,IP地址,IP地址(用,号隔开)

In order for Galera to work correctly binlog format should be ROW

binlog_format=ROW

MyISAM storage engine has only experimental support

default_storage_engine=InnoDB

Slave thread to use

wsrep_slave_threads= 8
wsrep_log_conflicts

This changes how InnoDB autoincrement locks are managed and is a requirement for Galera

innodb_autoinc_lock_mode=2

Node IP address

#当前节点IP
wsrep_node_address=IP地址

Cluster name

#集群名称
wsrep_cluster_name=pxc-cluster

#If wsrep_node_name is not specified, then system hostname will be used
#当前节点名称
wsrep_node_name=pxc-cluster-node-1

#pxc_strict_mode allowed values: DISABLED,PERMISSIVE,ENFORCING,MASTER
#不使用实验功能
pxc_strict_mode=ENFORCING

SST method

#状态快照传输(sst)方法,官方建议
wsrep_sst_method=xtrabackup-v2

#Authentication for SST method
#用户凭证(mysql的用户名和密码)

wsrep_sst_auth=“用户名:密码”

需要修改配置文件:
1.修改当前节点名
2.当前节点IP
3.集群中的节点IP,保持相同

7.初始化集群节点
其中一个节点使用 systemctl start [email protected] 启动
(起到加入集群的目的)
登录mysql
mysql -u root -p
开启 wsrep_causal_reads
(注意:哪个节点需要加入集群,哪个节点都要在mysql里设置一次)
set wsrep_causal_reads =1;

8.创建配置文件中对应的用户 所有节点都要创建这个用户
创建用户: CREATE USER ‘用户名’@‘localhost’ IDENTIFIED BY ‘密码’;

刷新权限: GRANT all privileges ON . TO ‘用户名’@‘localhost’ ;
FLUSH PRIVILEGES;
创建用户: CREATE USER ‘用户名’@‘当前需要访问数据库的IP地址’ IDENTIFIED BY ‘密码’;
刷新权限: GRANT all privileges ON . TO ‘用户名’@‘当前节点IP地址’ ;**
FLUSH PRIVILEGES;
9.其他节点启动成功后在引导节点
(使用 systemctl start [email protected] 命令启动的节点)

验证集群:show status like ‘wsrep%’;
在这里插入图片描述
(注意:这一步是在mysql下实行验证)
10.节点数据同步验证
在当前节点创建一个数据库
CREATE DATABASE user;
启动其他节点的数据库服务,进去后会发现新建的数据库,在其他节点创建的数据(user) 当前节点也能看到(user).

猜你喜欢

转载自blog.csdn.net/weixin_42226171/article/details/85512213