pxc

pxc percona xtradb cluster
percona 基于mysql数据库二次开发的数据库产品
相对于mysql 可以支持更大的并发
集群是多主架构 不论哪一个节点坏掉 集群都能正常运行 保证高可用
xtradb 存储引擎
mysql myisam-4版本 innodb -5版本
pxc percona的集群

特点:
1.要搭建pxc架构最少需要3台percona的实例来组成集群,单个实例之间不是主从的模式,而是各自为主,所以三者为对等关系,不分从属,就叫做多主架构,客户端写入数据和读取数据时,连接哪一个实例都是一样的,读取的数据也是相同的,写入任意一个实例后,集群将会自己同步到其他的实例上,这种架构不共享任何的数据,是一种高冗余架构
2.实现数据库集群数据同步的强一致性

原理:
客户端 – 写入请求 --节点A完成写入–将写入的操作广播至集群的B,C节点–B,C节点收到写入请求会进行核对,执行这些操作是否会产生冲突–如果不会,就执行写入操作,并把完成的结果返回给节点A–节点A收到所有节点反馈完成的消息后执行提交操作 —将结果返回给客户端

pxc集群的优点:
1.多主架构 集群中没有主从之分 每个节点都可以写入和读取数据
2.节点数据强一致性(同步)
3.并行复制
4.集群节点故障在恢复或者添加新的节点,节点的数据自动同步数据,不需要手动同步
5.支持增量复制 也支持全量复制

pxc依赖的库文件
gelera(自身) wsrepc(集群)

pxc使用的端口:
3306 :用来提供数据库服务
4567 :集群中节点通信的端口
4568:节点间进行增量复制(IST)使用的端口
4444:节点间进行全量复制(SST)使用的端口

搭建percona集群

第一台192.168.10.10
第二台192.168.10.30
第三台192.168.10.40

安装percona(三台操作一样)

[root@localhost ~]# rpm -ivh percona-release-0.1-6.noarch.rpm 
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vim  percona-release.repo
#8    改0
#9删除
#14  改0 
4 [percona-release-$basearch]
  5 name = Percona-Release YUM repository - $basearch
  6 baseurl = http://repo.percona.com/release/$releasever/RPMS/$basearch
  7 enabled = 1
  8 gpgcheck = 0
  9 
 10 [percona-release-noarch]
 11 name = Percona-Release YUM repository - noarch
 12 baseurl = http://repo.percona.com/release/$releasever/RPMS/noarch
 13 enabled = 1
 14 gpgcheck = 0
 #14行以下全部删除
[root@localhost yum.repos.d]# cd
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]#  wget http://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost yum.repos.d]# yum -y install  Percona-XtraDB-Cluster-57
[root@localhost ~]# cd /etc/percona-xtradb-cluster.conf.d/

第一台:

[root@localhost ~]# cd /etc/percona-xtradb-cluster.conf.d/
[root@localhost percona-xtradb-cluster.conf.d]# ls
mysqld.cnf  mysqld_safe.cnf  wsrep.cnf
[root@localhost percona-xtradb-cluster.conf.d]# vim mysqld.cnf 
更改
server-id=1   #节点标识
8 datadir=/usr/local/pxc/data  #数据文件的目录
10 log-error=/usr/local/pxc/log/mysqld.log  #错误日志存放的目录
 11 pid-file=/usr/local/pxc/data/mysqld.pid   #pid文件存放的目录
 [root@localhost percona-xtradb-cluster.conf.d]# mkdir /usr/local/pxc
 [root@localhost percona-xtradb-cluster.conf.d]# mkdir /usr/local/pxc/data
[root@localhost percona-xtradb-cluster.conf.d]# mkdir /usr/local/pxc/log
[root@localhost percona-xtradb-cluster.conf.d]# chown -R mysql:mysql /usr/local/pxc/
[root@localhost percona-xtradb-cluster.conf.d]# vim wsrep.cnf 
 8 wsrep_cluster_address=gcomm://192.168.10.10,192.168.10.30,192.168.10.40  #指定集群的节点
 25 wsrep_node_address=192.168.10.10  #指定当前节点的ip
 27 wsrep_cluster_name=pxc-cluster   #集群名称
 30 wsrep_node_name=pxc-cluster-node-1   #节点名称
 33 pxc_strict_mode=PERMISSIVE #同步数据时为宽容模式
 39 wsrep_sst_auth="root:123.com"  #全量复制使用的用户名和密码
 [root@localhost percona-xtradb-cluster.conf.d]# scp mysqld.cnf wsrep.cnf root@192.168.10.30:/etc/percona-xtradb-cluster.conf.d/
 [root@localhost percona-xtradb-cluster.conf.d]# scp mysqld.cnf wsrep.cnf root@192.168.10.40:/etc/percona-xtradb-cluster.conf.d/
 

第二台:

[root@localhost ~]# cd /etc/percona-xtradb-cluster.conf.d/
[root@localhost percona-xtradb-cluster.conf.d]# vim mysqld.cnf
7 server-id=2
[root@localhost percona-xtradb-cluster.conf.d]# vim wsrep.cnf
25 wsrep_node_address=192.168.10.30
30 wsrep_node_name=pxc-cluster-node-2
[root@localhost percona-xtradb-cluster.conf.d]# mkdir /usr/local/pxc
[root@localhost percona-xtradb-cluster.conf.d]# mkdir /usr/local/pxc/data
[root@localhost percona-xtradb-cluster.conf.d]# mkdir /usr/local/pxc/log
[root@localhost percona-xtradb-cluster.conf.d]# chown -R mysql:mysql /usr/local/pxc/

第三台

[root@localhost ~]# cd /etc/percona-xtradb-cluster.conf.d/
[root@localhost percona-xtradb-cluster.conf.d]# vim mysqld.cnf 
7 server-id=3
[root@localhost percona-xtradb-cluster.conf.d]# vim wsrep.cnf
25 wsrep_node_address=192.168.10.40
30 wsrep_node_name=pxc-cluster-node-3
[root@localhost percona-xtradb-cluster.conf.d]# mkdir /usr/local/pxc
[root@localhost percona-xtradb-cluster.conf.d]# mkdir /usr/local/pxc/data
[root@localhost percona-xtradb-cluster.conf.d]# mkdir /usr/local/pxc/log
[root@localhost percona-xtradb-cluster.conf.d]# chown -R mysql:mysql /usr/local/pxc/

第一台

[root@localhost ~]# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf
15 skip-grant-tables  添加跳过权限 让用户没有密码也能登入数据库
[root@localhost ~]# systemctl start mysql@bootstrap
[root@localhost ~]# mysql -uroot -p #登入数据库
mysql> update mysql.user set authentication_string=password("123.com") where User="root";   #更新用户列表
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1

mysql> flush privileges;     #先刷新
Query OK, 0 rows affected (0.01 sec)

mysql> set password=password("123.com");
ERROR 1133 (42000): Can't find any matching row in the user table #需要设置密码有效期
mysql> alter user "root"@"localhost" password expire never;  #让这个密码永久生效
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on *.* to "root"@"localhost" identified by "123.com";
Query OK, 0 rows affected, 1 warning (0.00 sec)
[root@localhost ~]# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf
去掉跳过权限 第十五行
15 skip-grant-tables  #去掉这一行
[root@localhost ~]# systemctl restart mysql@bootstrap
[root@localhost ~]# mysql -uroot -p123.com

第二台 第一台上设置密码 同步到第二和第三台

[root@localhost ~]# systemctl start mysqld
[root@localhost ~]# mysql -uroot -p123.com

第三台

[root@localhost ~]# systemctl start mysqld
[root@localhost ~]# mysql -uroot -p123.com

验证:
第一台:创建一个库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql> create database haha;
Query OK, 1 row affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| haha               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

第二台:查看

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| haha               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值