mysql8.0使用PXC实现高可用

1.先将环境配好(三个都做)

 ip                                                              角色

192.168.23.112                                       pxc1

192.168.23.113                                       pxc2

192.168.23.114                                       pxc3

host解析(三个都做)

cat >> /etc/hosts << EOF
192.168.23.112 pxc1
192.168.23.113 pxc2
192.168.23.114 pxc3
EOF

2.配置 Percona 存储库(三个都做)
yum -y install https://repo.percona.com/yum/percona-release-latest.noarch.rpm

3.查看现有存储库(三个都做)
yum repolist

4.启用percona cluster存储库(三个都做)
percona-release enable-only pxc-80 release
percona-release enable tools release
yum repolist

5.安装 Percona XtraDB 集群(三个都做)
dnf module disable mysql
yum install percona-xtradb-cluster

6.启动myqld(三个都做)
systemctl start mysqld

7.初始化数据库(三个都做)

vim /etc/my.cnf

[mysqld]
server-id=112 #另外两台是113 114
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
binlog_expire_logs_seconds=604800

8..修改密码(三个都做)

tmp_pass=`awk '/temporary password/ {print $NF}' /var/log/mysqld.log`

mysqladmin -uroot -p"$tmp_pass"  password 'MySQL@123'

alter user root@localhost identified by '123456';

9.

授权用户
# mysql -uroot -p123456
mysql> CREATE USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY 'MySQL@123';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT all privileges ON *.* TO 'admin'@'%';
Query OK, 0 rows affected (0.00 sec)

10.创建集群

[root@pxc1 ~]# vim /etc/my.cnf
...######## wsrep ###############
# Path to Galera library
wsrep_provider=/usr/lib64/galera4/libgalera_smm.so# 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
wsrep_cluster_address=gcomm://192.168.23.112,192.168.23.113,192.168.23.114# PXC集群的所有ip

# In order for Galera to work correctly binlog format should be ROW
binlog_format=ROW# Slave thread to use
wsrep_slave_threads=8wsrep_log_conflicts# This changes how InnoDB autoincrement locks are managed and is a requirement for Galera
innodb_autoinc_lock_mode=2 # 主键自增长不锁表# Node IP address
wsrep_node_address=192.168.23.112 # 当前节点的IP
# Cluster name
wsrep_cluster_name=pxc-cluster  # PXC集群的名称#If wsrep_node_name is not specified,  then system hostname will be used
wsrep_node_name=pxc1 # 当前节点的名称

#pxc_strict_mode allowed values: DISABLED,PERMISSIVE,ENFORCING,MASTER
pxc_strict_mode=ENFORCING

# SST method
wsrep_sst_method=xtrabackup-v2 # 同步方法

另外两个改ip和name就行了

11.拷贝

scp /var/lib/mysql/*.pem pxc2:/var/lib/mysql/

scp /var/lib/mysql/*.pem pxc3:/var/lib/mysql/mysql8.0使用PXC实现高可用_第1张图片

12.启动

systemctl start [email protected](第一个节点,有时报错就cat /var/log/mysqld.log

chown -R mysql.mysql /var/lib/mysql/

systemctl start mysqld(第二个节点,第三个节点)

mysql8.0使用PXC实现高可用_第2张图片

[root@pxc1 ~]# mysql -uroot -p123456 -e "show status like 'wsrep_cluster%';"
+----------------------------+--------------------------------------+
| Variable_name              | Value                                |
+----------------------------+--------------------------------------+
| wsrep_cluster_weight       | 3                                    |
| wsrep_cluster_conf_id      | 3                                    |
| wsrep_cluster_size         | 3                                    |
| wsrep_cluster_state_uuid   | eebe303f-5262-11e8-9e80-8a8d84011541 |
| wsrep_cluster_status       | Primary                              |
+----------------------------+--------------------------------------+

13.下线

systemctl stop [email protected](第一个节点)

systemctl stop mysqld(第二个和第三个节点)

你可能感兴趣的:(linux,服务器,运维)