MySQL5.7之PXC集群搭建

新建pxc001服务器:
系统:centos7
内存:2G
磁盘:128G
IP地址:192.168.0.201(第一节点)
192.168.0.202
192.168.0.203

#vi /etc/selinux/config
SELINUX=disabled #修改该项为disabled
#执行命令 setenforce 0
#systemctl restart firewalld
开放防火墙这4个端口
firewall-cmd --add-port=4444/tcp --permanent
firewall-cmd --add-port=4567/tcp --permanent
firewall-cmd --add-port=4568/tcp --permanent
firewall-cmd --add-port=3306/tcp --permanent

安装集群
#yum -y install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
#yum -y update percona-release
#yum -y install Percona-XtraDB-Cluster-57

启动mysql,并修改密码

service mysql start

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

[Note] A temporary password is generated for [email protected]: u8E;M:,p_T&H
#mysql -uroot -pu8E;M:,p_T&H
mysql> update mysql.user set authentication_string=password(‘[email protected]‘) where user=‘root‘ and Host = ‘localhost‘;

使用下面方式启动第一台机器(201服务器),这台叫引导节点。
只有这一台是这样启动。别的服务器用service mysql start启动
#ssh 192.168.0.201
#systemctl start [email protected]
进入mysql
#mysql -uroot [email protected]
#set wsrep_causal_reads =1; 避免各个节点的数据不一致,这种情况需要等待全同步复制 将此文件复制到master1、master2,注意要把 wsrep_node_name 和 wsrep_node_address 改成相应节点的 hostname 和 ip。

创建配置文件中对应的用户 所有节点的IP都要创建
#mysql -uroot [email protected]
mysql> grant all privileges on . to ‘pxcuser‘@‘%‘ identified by ‘[email protected]‘;
报错如下:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
解决办法:
mysql> set password = password(‘[email protected]‘);
mysql> grant all privileges on . to ‘pxcuser‘@‘%‘ identified by ‘[email protected]‘;
mysql> grant all privileges on . to ‘pxcuser‘@‘localhost‘ identified by ‘[email protected]‘;
mysql> flush privileges;

进入202和203服务器配置
#ssh 192.168.0.203
注意203和202的启动方式
#service mysql start
创建配置文件中对应的用户 所有节点的IP都要创建
mysql> grant all privileges on . to ‘pxcuser‘@‘%‘ identified by ‘[email protected]‘;
mysql> grant all privileges on . to ‘pxcuser‘@‘localhost‘ identified by ‘[email protected]‘;
mysql> flush privileges;

注意:服务的启动和停止要对应
service mysql stop ------> 启动时用service mysql start
systemctl stop [email protected] -----> 启用是用 systemctl start [email protected]

注意避坑:/var/lib/mysql/grastate.dat文件中safe_to_bootstrap为1的服务器是主库,用主库的方式启动!!我们想让谁做主库也可以手动设置该服务器,而且三台集群的uuid也相同才可以启动。

seqno为-1表示已加入到集群,数据库关闭后seqno会变。
下面这台服务器201做主库启动后,seqno从4变成了-1,表示已经加入集群。

203服务器做从库一直无法启动。
启动方式是:service mysql start
报错信息如下#tail -fn 100 /var/log/mysqld.log
2020-01-10T09:25:56.982598Z 0 [Note] WSREP: (32d9017e, ‘tcp://0.0.0.0:4567‘) turning message relay requesting off
2020-01-10T09:26:23.489499Z 0 [Note] WSREP: (32d9017e, ‘tcp://0.0.0.0:4567‘) turning message relay requesting on, nonlive peers: tcp://192.168.0.202:4567
2020-01-10T09:26:24.489792Z 0 [Note] WSREP: (32d9017e, ‘tcp://0.0.0.0:4567‘) reconnecting to 30d8eb06 (tcp://192.168.0.202:4567), attempt 0
2020-01-10T09:26:24.494967Z 0 [ERROR] WSREP: failed to open gcomm backend connection: 110: failed to reach primary view (pc.wait_prim_timeout): 110 (Connection timed out)
at gcomm/src/pc.cpp:connect():159
2020-01-10T09:26:24.495007Z 0 [ERROR] WSREP: gcs/src/gcs_core.cpp:gcs_core_open():209: Failed to open backend connection: -110 (Connection timed out)
2020-01-10T09:26:24.495376Z 0 [ERROR] WSREP: gcs/src/gcs.cpp:gcs_open():1514: Failed to open channel ‘pxc-cluster-test‘ at ‘gcomm://192.168.0.202,192.168.0.203,192.168.0.201‘: -110 (Connection timed out)
2020-01-10T09:26:24.495402Z 0 [ERROR] WSREP: gcs connect failed: Connection timed out
2020-01-10T09:26:24.495415Z 0 [ERROR] WSREP: Provider/Node (gcomm://192.168.0.202,192.168.0.203,192.168.0.201) failed to establish connection with cluster (reason: 7)
2020-01-10T09:26:24.495423Z 0 [ERROR] Aborting

解决办法:把203服务器的grastate.dat文件的uuid修改的和202,201一模一样就可以启动了。
safe_to_bootstrap: 设置为0
那么UUID是什么呢?
为什么同一个pxc集群的UUID是相同的呢?

验证集群:show status like ‘wsrep%‘;

| wsrep_incoming_addresses | 192.168.0.202:3306,192.168.0.203:3306,192.168.0.201:3306 |
| wsrep_cluster_weight | 3 |
| wsrep_desync_count | 0 |
| wsrep_evs_delayed | |
| wsrep_evs_evict_list | |
| wsrep_evs_repl_latency | 0/0/0/0/0 |
| wsrep_evs_state | OPERATIONAL |
| wsrep_gcomm_uuid | e9e76881-338f-11ea-90d6-3b07eeeaf3a4 |
| wsrep_cluster_conf_id | 3 |
| wsrep_cluster_size | 3 |
| wsrep_cluster_state_uuid | 9d5bc8a5-3374-11ea-9aac-b3599f4e37e4 |
| wsrep_cluster_status | Primary |
| wsrep_connected | ON |
| wsrep_local_bf_aborts | 0 |
| wsrep_local_index | 2 |
| wsrep_provider_name | Galera |
| wsrep_provider_vendor | Codership Oy <[email protected]> |
| wsrep_provider_version | 3.41(rb3295e6) |
| wsrep_ready | ON

原文地址:https://blog.51cto.com/songlisha/2465947

时间: 2024-10-06 16:38:44

MySQL5.7之PXC集群搭建的相关文章

mysql5.7 MGR集群搭建

mysql5.7 MGR集群搭建部署 此文章由队员(谆谆)拟写 此文章来自 乌龟运维 官网 wuguiyunwei.com QQ群 602183872 最近看了一下mysql5.7的MGR集群挺不错的,有单主和多主模式,于是乎搭建测试了一下效果还不错,我指的不错是搭建和维护方面都比较简单.网上绝大多数都是单主模式,当然我这里也是,为了加深印象,特意记录一下搭建过程,等以后再去尝试多主模式,相信大家现在数据库的瓶颈基本都是在写,读写分离虽然是一种可行的解决方案,但是如果数据量很大,写一样会有问题,

Docker搭建PXC集群

如何创建MySQL的PXC集群 下载PXC集群镜像文件 下载 docker pull percona/percona-xtradb-cluster 重命名 [[email protected] ~]# docker tag docker.io/percona/percona-xtradb-cluster pxc 创建内部网络 处于安全考虑,需要给PXC集群实例创建Docker内部网络 创建网段: [[email protected] ~]# docker network create --sub

搭建PXC集群指引

目录 背景 架构图 PXC的特点 优点 缺点 搭建指引 机器准备 安装前准备 安装 安装依赖 各节点PXC软件的下载和安装 创建配置文件 安装xtrabackup 各个节点无密码初始化 引导第一个节点 引导第二.三个节点 检查测试 补充 PXC传输数据有两种方式 PXC使用的限制 背景 因为客户有一套PXC(Percona Xtradb Cluster)集群,有运维的需求,所以需要研究和测试PXC,现整理一套完整的搭建PXC标准文档,以供后面测试和学习用途. mariadb的MGC(MariaD

docker 搭建PXC集群 与 redis集群

docker基本指令: 更新软件包 yum -y update 安装Docker虚拟机(centos 7) yum install -y docker 运行.重启.关闭Docker虚拟机 service docker start service docker stop 搜索镜像 docker search 镜像名称 下载镜像 docker pull 镜像名称 查看镜像 docker images 删除镜像 docker rmi 镜像名称 运行容器 docker run 启动参数 镜像名称 查看容

LVS高可用集群搭建

最近公司重整架构,前端使用LVS做负债均衡,虽然之前也研究过集群,看过很多LVS原理和架构,但毕竟没有真正操作过,以下案例是在虚拟机中完成实验,记录一下,方便以后在服务器中实施搭建.  架构图如下: 前提介绍:本案例采用Centos7+Keepalived1.3.5+Tomcat9+Mysql5.6+Redis3.2.8+Rabbitmq3.6.10 集群实现的功能有: 1):实现单点访问,利用keepalived的vip实现对不同的后端服务器进行访问: 2):健康检查,利用keepalived

【Data Cluster】真机环境下MySQL数据库集群搭建

阅读目录 MySQL Cluster简介 mysql-cluster构造 虚拟机安装centos6.6 mysql-cluster下载 centos6.6搭建环境配置 mysql-cluster安装包导入cent中 集群配置 运行mysql-cluster 常见问题 测试 真机环境下MySQL-Cluster搭建文档  摘要:本年伊始阶段,由于实验室对不同数据库性能测试需求,才出现MySQL集群搭建.购置主机,交换机,双绞线等一系列准备工作就绪,也就开始集群搭建.起初笔者对此不甚了解,查阅很多资

mysql 主从复制集群搭建

话说一个正确的文章能敌千钧万马,一句善意的点拨能敌百万雄狮,一个好友的帮助能让你拨开云雾见青天.搭建mysql主从同步,这两天看网上的博客教程很多,当然,错误的文章会误导你很多,我就被误导了.现将这两天的搭建过程详细记录: 前期准备:关闭防火墙 关闭SELINUX 关闭SELINUX vi /etc/selinux/config #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加 :wq  #保存退出 s

MHA 高可用集群搭建(二)

MHA 高可用集群搭建安装scp远程控制http://www.cnblogs.com/kevingrace/p/5662839.html yum install openssh-clients mysql5.7运行环境:centos6.51 主机部署 manager:192.168.133.141test1: 192.168.133.138test2:192.168.133.139 (为master1的备用)test3: 192.168.133.140 test1为主,test2和test3为备

MySQL集群架构06HAProxy+PXC集群架构

本博客讨论HAProxy+PXC集群架构. 1.架构说明 单纯的PXC集群需要对外部应用程序暴露多个集群内部的MySQL节点的IP地址,才能让应用程序使用到多节点读写数据的便利,同时,PXC集群本身没有提供负载均衡的功能. HAProxy+PXC集群架构中,引入负载均衡组件HAProxy,使得对外部应用只需要暴露HAProxy的外部地址和端口即可,而无需让应用程序直接使用MySQL节点自身的地址. 同时HAProxy提供了负载均衡的功能,可以平衡集群内各个MySQL节点的负载水平. 2.核心原理