1、PXC介绍

Percona XtraDB Cluster(简称PXC)

是基于Galera的MySQL高可用集群解决方案

Galera Cluster是Codership公司开发的一套免费开源的高可用方案

PXC集群主要由两部分组成:

Percona Server with XtraDB和Write Set Replication patches(同步、多主复制插件)

官网http://galeracluster.com

2、PXC特点

数据强一致性,无同步延迟

没有主从切换操作,无需使用虚拟ip

支持innoDB存储引擎

多线程复制

部署使用简单

支持节点自动加入,无需手动拷贝数据

3、相关的服务端口

3306 数据库服务端口

4444 SST 端口

4567 集群通信端口

4568 IST 端口

SST  State Snapshot Transfer 全量同步

IST Incremental State Transfer 增量同步

4、PXC集群部署

4.1、环境准备

pxcnode10:192.168.4.10数据库服务器

pxcnode20:192.168.4.20数据库服务器

pxcnode30:192.168.4.30数据库服务器

链接:https://pan.baidu.com/s/1YA2Dd6O5f31j0cpJDoZEwQ 
提取码:xbjy

三台服务器基本设置如下:

关闭防火墙、selinux

cat /etc/hosts     
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.4.10 pxcnode10
192.168.4.20 pxcnode20
192.168.4.30 pxcnode30

4.2、三台服务器按照以下顺序安装软件,因为软件之间有依赖性。(以10为例)

[root@pxcnode10 ~]# cd pxc
[root@pxcnode10 pxc]# ls
libev-4.15-1.el6.rf.x86_64.rpm
percona-release-0.1-4.noarch.rpm
percona-xtrabackup-24-2.4.13-1.el7.x86_64.rpm
Percona-XtraDB-Cluster-5.7.25-31.35-r463-el7-x86_64-bundle.tar
qpress-1.1-14.11.x86_64.rpm
[root@pxcnode10 pxc]# rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm
[root@pxcnode10 pxc]# yum  -y  install  percona-xtrabackup-24-2.4.13-1.el7.x86_64.rpm
[root@pxcnode10 pxc]# rpm -ivh qpress-1.1-14.11.x86_64.rpm
[root@pxcnode10 pxc]# tar -xvf  Percona-XtraDB-Cluster-5.7.25-31.35-r463-el7-x86_64-bundle.tar
[root@pxcnode10 pxc]# yum -y  install  Percona-XtraDB-Cluster-*.rpm

2)修改三台服务器的mysqld.cnf文件,除了server-id不一样,其他配置都一样

[root@pxcnode10 ~]# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf
[mysqld]
server-id=10                          # server-id 不允许重复
datadir=/var/lib/mysql                # 数据库目录
socket=/var/lib/mysql/mysql.sock      # socket文件
log-error=/var/log/mysqld.log         # 日志文件
pid-file=/var/run/mysqld/mysqld.pid   # pid文件
log-bin                               # 启用binlog日志
log_slave_updates                     # 启用链式复制
expire_logs_days=7                    # 日志文件保留天数[root@pxcnode20 pxc]# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf
[mysqld]
server-id=20[root@pxcnode30 pxc]# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf
[mysqld]
server-id=30

3)修改三台服务器的mysqld_safe.cnf文件,使用默认配置即可。(以10为例)

[root@pxcnode10 ~]# vim /etc/percona-xtradb-cluster.conf.d/mysqld_safe.cnf
[mysqld_safe]
pid-file = /var/run/mysqld/mysqld.pid
socket   = /var/lib/mysql/mysql.sock
nice     = 0

3)修改三台服务器的wsrep.cnf文件,其中成员列表、集群名、SST用户和密码必须相同

[root@pxcnode10 ~]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
1 [mysqld]
8 wsrep_cluster_address=gcomm://192.168.4.10,192.168.4.20,192.168.4.30   # 成员列表
25 wsrep_node_address=192.168.4.10                                       # 本机IP
27 wsrep_cluster_name=pxc-cluster                                        # 集群名
30 wsrep_node_name=pxcnode10                                             # 本机主机名
39 wsrep_sst_auth="jy:JY1987...zy2011"                                   # SST数据同步授权用户及密码[root@pxcnode20 ~]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
1 [mysqld]
8 wsrep_cluster_address=gcomm://192.168.4.10,192.168.4.20,192.168.4.30
25 wsrep_node_address=192.168.4.20
27 wsrep_cluster_name=pxc-cluster
30 wsrep_node_name=pxcnode20
39 wsrep_sst_auth="jy:JY1987...zy2011"[root@pxcnode30 ~]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
1 [mysqld]
8 wsrep_cluster_address=gcomm://192.168.4.10,192.168.4.20,192.168.4.30
25 wsrep_node_address=192.168.4.30
27 wsrep_cluster_name=pxc-cluster
30 wsrep_node_name=pxcnode30
39 wsrep_sst_auth="jy:JY1987...zy2011"

4.3、初始化集群,在任意1台服务器上执行初始化集群操作都可以(仅需要执行一遍)

[root@pxcnode10 ~]# systemctl  start mysql@bootstrap.service
[root@pxcnode10 ~]# ls /var/lib/mysql   # 检查数据库文件列表,有文件说明成功
auto.cnf         client-key.pem  ib_buffer_pool  ibtmp1           mysql.sock.lock     pxcnode10-bin.000001  server-key.pem
ca-key.pem       galera.cache    ibdata1         mysql            performance_schema  pxcnode10-bin.000002  sys
ca.pem           grastate.dat    ib_logfile0     mysqld_safe.pid  private_key.pem     pxcnode10-bin.index   xb_doublewrite
client-cert.pem  gvwstate.dat    ib_logfile1     mysql.sock       public_key.pem      server-cert.pem
[root@pxcnode10 ~]# grep password /var/log/mysqld.log
2022-05-18T14:32:54.806734Z 1 [Note] A temporary password is generated for root@localhost: !6F0yJ!=wqSc
[root@pxcnode10 ~]# mysql -uroot -p"!6F0yJ!=wqSc"
mysql> alter user root@"localhost" identified by "JY1987...zy2011";
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on *.* to jy@"%" identified by "JY1987...zy2011";  #添加全量同步用户jy
Query OK, 0 rows affected, 1 warning (0.01 sec)[root@pxcnode10 ~]# netstat -utnalp | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      5782/mysqld
[root@pxcnode10 ~]# netstat -utnalp | grep 4567          # 查看集群端
tcp        0      0 0.0.0.0:4567            0.0.0.0:*               LISTEN      5782/mysqld  

1)在pxcnode10主机数据库服务器上,管理员登录并建库.表存储记录,pxc集群中的表必须要有主键,自增长可选。

[root@pxcnode10 ~]# mysql -uroot -pJY1987...zy2011
mysql> create database xb;
Query OK, 1 row affected (0.00 sec)mysql> create table xb.zy(id int primary key auto_increment,age int);
Query OK, 0 rows affected (0.00 sec)mysql> insert into xb.zy(age) values(11),(35),(35);
Query OK, 3 rows affected (0.02 sec)
Records: 3  Duplicates: 0  Warnings: 0mysql> select * from xb.zy;
+----+------+
| id | age  |
+----+------+
|  1 |   11 |
|  2 |   35 |
|  3 |   35 |
+----+------+
3 rows in set (0.00 sec)

4.4、在20和30主机上都启动数据库服务并验证数据,启动服务后会自动同步10主机的数据(以20为例)

[root@pxcnode20 ~]# systemctl start mysql
[root@pxcnode20 ~]# ls /var/lib/mysql
auto.cnf         client-key.pem  ib_buffer_pool  ibtmp1                  mysql.sock          public_key.pem        server-key.pem  xtrabackup_binlog_pos_innodb
ca-key.pem       galera.cache    ibdata1         innobackup.move.log     mysql.sock.lock     pxcnode20-bin.000001  sys             xtrabackup_galera_info
ca.pem           grastate.dat    ib_logfile0     innobackup.prepare.log  performance_schema  pxcnode20-bin.index   xb              xtrabackup_info
client-cert.pem  gvwstate.dat    ib_logfile1     mysql                   private_key.pem     server-cert.pem       xb_doublewrite  xtrabackup_master_key_id[root@pxcnode20 ~]# netstat -utnalp | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      3312/mysqld
[root@pxcnode20 ~]# netstat -utnalp | grep 4567
tcp        0      0 0.0.0.0:4567            0.0.0.0:*               LISTEN      3312/mysqld
tcp        0      0 192.168.4.20:46176      192.168.4.10:4567       ESTABLISHED 3312/mysqld
tcp        0      0 192.168.4.20:4567       192.168.4.20:37076      CLOSE_WAIT  3312/mysqld  [root@pxcnode20 ~]# mysql -uroot -pJY1987...zy2011 -e 'select * from xb.zy'
mysql: [Warning] Using a password on the command line interface can be insecure.
+----+------+
| id | age  |
+----+------+
|  1 |   11 |
|  2 |   35 |
|  3 |   35 |
+----+------+

mysql数据库—PXC集群相关推荐

  1. mysql数据库的pxc工具_CentOS7 下 MySQL 数据库 PXC 集群部署操作指导

    背景 最近在进行 MySQL 的 PXC 集群搭建使用和研究 前期已完成了一篇记录文章 : [CentOS7 下 MySQL 之 PXC 集群部署[Docker+多机多节点]] 但是,毕竟不是所有人都 ...

  2. Mysql搭建PXC集群 - Percona XtraDB Cluster

    转载来源:https://blog.csdn.net/lvshaorong/article/details/80501905  pxc集群是Percona XtraDB Cluster的缩写,是基于p ...

  3. MySQL 部署PXC集群

    目录 MySQL 部署PXC集群 PXC集群概述 PXC介绍 PXC特点 相应端口 主机角色 配置主机名及映射关系 部署PXC 安装软件 配置服务 启动服务 测试配置 测试集群高可用 常见错误 MyS ...

  4. MySQL集群解决方案(1):MySQL数据库的集群方案

    1.系统架构存在的问题 在我们的系统架构中,DBserver方面我们只是使用了单节点服务,如果面对大并发,海量数据的存储,显然单节点的系统架构将存在很严重的问题,所以接下来,我们将实现MySQL的集群 ...

  5. CentOS7 下 MySQL 之 PXC 集群部署【Docker+多机多节点】

    背景 最近在进行 MySQL 集群搭建测试的研究中 对于业界主流方案自然不能跳过 在此,整理成完整的文章,希望道友能得到参考价值 - 对于 docker 不熟悉的小伙伴,个人建议移步文章 -- [Ce ...

  6. mysql数据库rp集群_MySQL集群入门(PXC)

    目标: 1.掌握PXC集群MySQL方案的原理: 2.掌握PXC集群的强一致性: 3.掌握PXC集群的高可用方案: 硬件要求: 1.Win10x64企业版/linux/MacOS: 2.Docker虚 ...

  7. mysql集群重启报错lock_CentOS7.2 下 MySQL 之 PXC 集群部署【Docker+单机多节点】

    背景 [注意]: 鄙人认为本篇适合做入门测试/学习之用,选择的 "单机多节点配置",后面再整理 "多机配置"文章. 近期正突击学习数据库知识 想着对 PXC 集 ...

  8. Docker搭建MySQL的PXC集群

    一.简介 PXC属于一套近乎完美的mysql高可用集群解决方案,相比那些比较传统的基于主从复制模式的集群架构MHA和MM+keepalived,galera cluster最突出特点就是解决了诟病已久 ...

  9. MySQL之PXC集群搭建

    一.PXC 介绍 1.1 PXC 简介 PXC 是一套 MySQL 高可用集群解决方案,与传统的基于主从复制模式的集群架构相比 PXC 最突出特点就是解决了诟病已久的数据复制延迟问题,基本上可以达到实 ...

最新文章

  1. Codeforces Round #640 (Div. 4)(ABCDE)
  2. 深度学习之卷积神经网络(Convolutional Neural Networks, CNN)(二)
  3. LeetCode 1760. 袋子里最少数目的球(二分查找)
  4. django序列化器嵌套_Django Rest Framework中用于OneToOne字段的序列化程序中的嵌套关​​系
  5. python以追加方式打开文件 线程安全吗_多线程追加文件,不加锁,会出现什么情况 ?...
  6. explain ref_MySQL 性能分析神器 —— EXPLAIN 用法与解读。
  7. springboot 妙启动_SpringBoot启动时执行指定任务
  8. jni数组使用(二)
  9. 十大领域管理软件供应商入选厂商如下(排名不分先后)
  10. 用matlab化简三角函数方程组,matlab化简三角函数 matlab怎么样化简三角函数?
  11. java百度云盘,看完直呼内行
  12. 创维电视能用鸿蒙系统吗,鸿蒙OS系统电视怎么看直播?装了鸿蒙系统的电视可以看电视直播吗?当然可以...
  13. python找不到文件怎么办_python中open找不到文件怎么解决
  14. D2D D3D12 渲染视频帧思路及实现
  15. 七.Docker网络管理以及固定ip
  16. python文件名可以用中文吗_python对中文路径/文件名的重命名
  17. Redis缓存穿透、击穿、雪崩、概念及解决办法
  18. 临床病理的计算机辅助读片,第二军医大学附属长海医院病理科
  19. 量子计算机芯片电原理图,量子计算机最新进展:量子光学芯片电路
  20. PingCAP 携手 CCF 数据库专委会,助推数据库人才培养和科技创新

热门文章

  1. 微信开发者工具报错Debugging connection was closed. Reason:Render process gone.Reconnect when ready by reopeni
  2. php 并发下载文件,PHP 并发下载 - 鸟屁不会的程序猿的个人空间 - OSCHINA - 中文开源技术交流社区...
  3. linux内核内存问题检测调试
  4. (php)泛微E-Office文件上传漏洞(原理分析+复现+批量检测)
  5. fluent瞬态计算终止条件在哪里设置_Fluent案例11【螺旋桨_MRF回转体】
  6. 测试三层交换机ip routing和no switchport命令的区别
  7. 九年老程序员推荐的java书籍,建议收藏!!
  8. 磊科nw336 linux驱动程序,Ubuntu 10.04 安装磊科nw336驱动 rtl8188su rtl8192su
  9. 【cocos2d-x 手游研发----怪物智能AI】
  10. MySql分表、分库、分片和分区知识