1.准备环境
--用户用户组
groupadd mysql
useradd-g mysql mysql
--目录
mkdir -p /data/PXC/{data,redo,binlog,tmp,logs}chown -R mysql:mysql /data/PXCchmod -R 755 /data/PXCchown -R mysql:mysql PXCchmod -R 755 PXC
修改内核参数
[root@mar3 PXC]# cat /etc/security/limits.conf |grep -v ^$|grep -v ^#
mysql soft nproc65535mysql hard nproc65535mysql soft nofile65535mysql hard nofile65535
关闭各个节点防火墙:
systemctl stop firewalld
systemctl disable firewalld
2安装相关软件
socat
yum -y install socat
安装xtrabckup
cat <>/etc/yum.repos.d/percona.repo>[percona]> name =Percona> baseurl = https://mirrors.tuna.tsinghua.edu.cn/percona/release/\$releasever/RPMS/\$basearch
> enabled = 1
> gpgcheck = 0
>
>[epel]> name=epelrepo> baseurl=https://mirrors.aliyun.com/epel/\$releasever/\$basearch
> gpgcheck=0
> enable=1
> eof
[root@mar3 PXC]# yum list all| grep xtraback -i
percona-xtrabackup-24.x86_64 2.4.21-1.el7 @percona
holland-xtrabackup.noarch 1.1.21-1.el7 epel
percona-xtrabackup.x86_64 2.3.10-1.el7 percona
percona-xtrabackup-22.x86_64 2.2.13-1.el7 percona
percona-xtrabackup-22-debuginfo.x86_64 2.2.13-1.el7 percona
percona-xtrabackup-24-debuginfo.x86_64 2.4.21-1.el7 percona
percona-xtrabackup-80.x86_64 8.0.14-1.el7 percona
percona-xtrabackup-80-debuginfo.x86_64 8.0.14-1.el7 percona
percona-xtrabackup-debuginfo.x86_64 2.3.10-1.el7 percona
percona-xtrabackup-test.x86_64 2.3.10-1.el7 percona
percona-xtrabackup-test-22.x86_64 2.2.13-1.el7 percona
percona-xtrabackup-test-24.x86_64 2.4.21-1.el7 percona
percona-xtrabackup-test-80.x86_64 8.0.14-1.el7 percona
yum -y install percona-xtrabackup-24.x86_64
安装pxc
gunzip Percona-XtraDB-Cluster-5.7.26-rel29-31.37.1.Linux.x86_64.ssl101.tar.gztar -zxvf Percona-XtraDB-Cluster-5.7.26-rel29-31.37.1.Linux.x86_64.ssl101.tar -C /usr/local/
mv /usr/local/Percona-XtraDB-Cluster-5.7.26-rel29-31.37.1.Linux.x86_64.ssl101 /usr/local/mysqlchown -R mysql:mysql /usr/local/mysqlchmod -R 755 /usr/local/mysql
3.创建my.cnf配置文件,
标红色的部分要根据 每个节点的情况更改
[root@mar0 PXC]# cat my.cnf |grep -v ^#
[client]
default-character-set =uft8
port= 3306socket= /data/PXC/tmp/mysql.sock
[mysql]
prompt="\u@mysqldb \R:\m:\s [\d]>"[mysqld]
basedir=/usr/local/mysql
datadir= /data/PXC/data
port= 3306
server_id = 101socket= /data/PXC/tmp/mysql.sock
tmpdir=/data/PXC/tmp
character-set-server=utf8
log-error= /data/PXC/logs/alert_3306.log
pid-file = /data/PXC/tmp/mar0.inno.com.mysql_3306.pid
gtid_mode=ON
log-slave-updates=ON
enforce-gtid-consistency=ON
binlog_format=ROW
skip-slave-start=1log-bin=/data/PXC/binlog/mysql-bin
master_info_repository=TABLE
relay_log_purge=0binlog_checksum=NONE
transaction_write_set_extraction=XXHASH64
secure_file_priv=/data/export
slow_query_log=on
long_query_time=1slow_query_log_file=/data/PXC/logs/slow.log
log_queries_not_using_indexes=on
log_output=FILE
general_log=on
innodb_data_file_path=ibdata1:2G:autoextend
innodb_log_group_home_dir=/data/PXC/redo
innodb_file_per_table=1wsrep_provider=/usr/local/mysql/lib/libgalera_smm.so
wsrep_cluster_name=pxc-cluster
wsrep_cluster_address=gcomm://192.168.1.200,192.168.1.111,192.168.1.112
wsrep_node_name=pxc01
wsrep_node_address=192.168.1.200wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth=pxc:123456pxc_strict_mode=ENFORCING
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
第二个节点
wsrep_node_name=pxc2
wsrep_node_address=192.168.1.111
第三个节点
wsrep_node_name=pxc3
wsrep_node_address=192.168.1.112
4. 修改mysql环境变量
export PATH=/usr/local/mysql/bin:$PATH:/usr/local/xtrabackup/bin
5.开始部署
各个节点分别初始化数据库
mysqld --defaults-file=/data/PXC/my.cnf --initialize
启动第一个节点
mysqld_safe --defaults-file=/data/PXC/my.cnf --wsrep-new-cluster &
在第一个节点修改密码,创建复制用户
--修改密码
root@(none)>set password='123456';--创建一个SST用户
GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON*.* TO 'pxc'@'localhost' IDENTIFIED BY '123456';
启动节点#二节点和三节点不要同时启动,待二节点同步完成后再启动三节点
mysqld_safe --defaults-file=/data/PXC/my.cnf &
登陆验证:
root@mysqldb 21:49: [(none)]> show status like 'wsrep_cluster_%';+--------------------------+--------------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------------+
| wsrep_cluster_weight | 3 |
| wsrep_cluster_conf_id | 15 |
| wsrep_cluster_size | 3 |
| wsrep_cluster_state_uuid | b813dad6-298a-11eb-a1a0-ff3a44db33c5 |
| wsrep_cluster_status | Primary |
+--------------------------+--------------------------------------+
PXC 5.7集群参数具体描述
wsrep_cluster_name 指定群集的逻辑名称。对于群集中的所有节点,它必须相同。
wsrep_cluster_address 指定群集中节点的IP地址。
wsrep_node_name 指定每个单独节点的逻辑名称。如果未指定此变量,则将使用主机名称。
wsrep_node_address 指定该特定节点的IP地址。
wsrep_sst_method 默认情况下,Percona XtraDB集群使用Percona XtraBackup进行状态快照传输(SST)。
强烈建议设置wsrep_sst_method=xtrabackup-v2。
这种方法需要用户在初始节点上创建SST用户。用wsrep_sst_auth变量提供SST用户凭据。
wsrep_sst_auth 必须在引导第一个节点时创建此用户 并为其提供必要的权限:
mysql> CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 'passw0rd';
mysql> GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost';
mysql>FLUSH PRIVILEGES;
pxc_strict_mode 默认情况下PXC Strict模式为 ENFORCING,这将阻止使用Percona XtraDB集群中不受支持的特性 关于这个参数的具体描述可以参考:Percona XtraDB Cluster Strict Mode(PXC5.7)
binlog_format Galera只支持行级复制,所以设置binlog_format=ROW。
efault_storage_engine Galera完全支持InnoDB存储引擎。它不能与MyISAM或任何其他非事务性存储引擎正常工作。将此变量设置为default_storage_engine=InnoDB。
innodb_autoinc_lock_mode Galera仅支持InnoDB的交错(2)锁定模式。设置传统(0)或连续(1)锁定模式会导致复制失败,因为未解决的死锁。 将此变量设置为innodb_autoinc_lock_mode=2。