1、pxc基础
pxc简介 | pxc优势 | pxc缺点 |
---|---|---|
支持高可用 | 当执行操作的时候,默认在本地节点执行,所有的数据本地节点都有不需要远程查询 | 配置新节点的开销较大 |
数据同步复制 | 去中心化管理,即使在任何的一个时间点宕掉一个节点,其他节点仍然继续工作,而且没有数据损失 | 有多个数据副本 |
几乎无延迟 | 对数据库读负载均衡支持较好,可以在任何一个节点上执行读操作 | 对写操作的负载均衡支持不好 |
2、环境搭建
(1)、基础环境
node1 | 192.168.1.3 |
---|---|
node2 | 192.168.1.4 |
node3 | 192.168.1.5 |
epel-release源 | 可以连接外网 |
所有节点操作相同
[root@localhost ~]# ntpdate ntp.ntsc.ac.cn
所有节点需要时间同步
[root@localhost ~]# yum -y install http://repo.percona.com/yum/percona-release-latest.noarch.rpm
下载percona网站的yum源
[root@localhost ~]# mkdir percona
创建于一个目录,并把包解压到指定目录
[root@localhost ~]# tar -xf Percona-XtraDB-Cluster-5.7.24-31.33-r443-el7-x86_64-bundle.tar -C percona/
解压到指定目录
[root@localhost percona]# yum -y localinstall *.rpm
进入指定目录使用yum进行本地安装rpm包,有些依赖包需要通过epel-release源进行下载
[root@localhost ~]# vim /etc/selinux/config
进入selinux配置文件中修改SELINUX=disabled
[root@localhost ~]# vim /etc/hosts 修改主机节点名称
[root@localhost ~]# firewall-cmd --permanent --add-port=3306/tcp
success
[root@localhost ~]# firewall-cmd --permanent --add-port=4444/tcp
success
[root@localhost ~]# firewall-cmd --permanent --add-port=4567/tcp
success
[root@localhost ~]# firewall-cmd --permanent --add-port=4568/tcp
success
[root@localhost ~]# firewall-cmd --reload
success 永久放行所需端口
完成以上操作后需要reboot重启所有服务器
3、操作
[root@node1 ~]# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf MySQL配置
[root@node1 ~]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf 写集复制配置文件
[root@node1 ~]# systemctl start mysql 三台都需开启
[root@node1 ~]# systemctl start mysql@bootstrap.service 只需开启第一台
[root@node1 ~]# grep "temporary password" /var/log/mysqld.log 查询MySQL临时密码
[root@node1 ~]# mysql -uroot -p',/,Kw:=GJ5tL' 登陆数据库
mysql> alter user 'root'@'localhost' identified by '123.com';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on *.* to 'sstuser'@'localhost' identified by '123.com';
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> show status like 'wsrep_local_state_comment';
+---------------------------+--------+
| Variable_name | Value |
+---------------------------+--------+
| wsrep_local_state_comment | Synced | 三台都出来Synced就OK
+---------------------------+--------+
1 row in set (0.00 sec)
mysql> 其余两台进入数据库查看就可以