mysql pxc搭建_MySQL(PXC)集群搭建
前言我这里使用三台CentOS Linux release 7.8.2003的虚拟机来作演示[root@n1 ~]# cat /etc/redhat-releaseCentOS Linux release 7.8.2003 (Core)安装前准备请确保服务器没有安装MySQL,如果已经安装了请先卸载(后面会起冲突)删除 MariaDB这里我的服务器版本为 Centos 7.x ,需要删除自带的 M
前言
我这里使用三台CentOS Linux release 7.8.2003的虚拟机来作演示
[root@n1 ~]# cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
安装前准备
请确保服务器没有安装MySQL,如果已经安装了请先卸载(后面会起冲突)
删除 MariaDB
这里我的服务器版本为 Centos 7.x ,需要删除自带的 MariaDB 数据库,避免对后面安装造成影响
yum -y remove mari*
开放访问墙端口
#MySQL 对外提供服务的端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#请求进行全量同步(SST)的端口
firewall-cmd --zone=public --add-port=4444/tcp --permanent
#集群中各个节点间的通讯端口
firewall-cmd --zone=public --add-port=4567/tcp --permanent
#请求进行增量同步(IST)的端口
firewall-cmd --zone=public --add-port=4568/tcp --permanent
firewall-cmd --reload
关闭SELINUX
SELinux 安全模块可能会限制对 Percona XtraDB Cluster 的数据访问。
此时可以在运行时使用 setenforce 0 命令进行更改.
也可以通过修改 /etc/selinux/config 文件中的 SELINUX 属性的值为 disabled 从而进行永久性的更改:
vi /etc/selinux/config
SELINUX=disabled
修改完成后需要重启服务器:reboot
安装依赖
yum install -y libaio
请记住,PXC软件包其实是带Galera组件的percona server集合,请勿再重复下载percona server,更不要下载其他mysql版本,因为只有percona server可以搭建PXC集群!
安装前请确定你的openssl版本
我这里的openssl版本为1.0.2
开始安装
官网下载链接(MySQL5.7.30):
使用wget命令下载(这里使用的是私有云的链接)
wget http://oss.jiugell.com/toolBox/63a9f0ea7bb98050796b649e85481845/software/pxc/Percona-XtraDB-Cluster-5.7.30-rel33-43.1.Linux.x86_64.ssl102.tar.gz
下载完成后解压
tar -zxvf Percona-XtraDB-Cluster-5.7.30-rel33-43.1.Linux.x86_64.ssl102.tar.gz -C /opt
ln -s /opt/Percona-XtraDB-Cluster-5.7.30-rel33-43.1.Linux.x86_64.ssl102/ /usr/local/mysql
groupadd mysql
useradd -M -g mysql -s /sbin/nologin -d /usr/local/mysql mysql
mkdir -p /database/mysql/data/3306
chown mysql:mysql /database/mysql/data/3306 -R
echo 'export PATH=/usr/local/mysql/bin/:$PATH' >>/etc/profile
source /etc/profile
以上的操作每台机器都要配置
配置文件
编辑my.cnf : vim /etc/my.cnf
192.168.1.71的配置内容如下:
### pxc1 | 192.168.1.71
### 右边#号的是percona server默认值
[mysqld]
####: mysqld基本设置
user =mysql # mysql
basedir =/usr/local/mysql/ # /usr/local/mysql/
datadir =/database/mysql/data/3306 # /usr/local/mysql/data
character_set_server =utf8 # latin1
log_timestamps =system # utc
skip_name_resolve =1 # 0
lower_case_table_names =1 # 0
####: pxc必须满足的
server-id =71 # 0 #注意三台服务器的设置不同
binlog_format =row # row
default_storage_engine =InnoDB # InnoDB
innodb_autoinc_lock_mode =2 # 1
#### pxc配置
wsrep_node_name=pxc1 #注意三台服务器的设置不同。可以不配置,不配置时默认取hostname
wsrep_node_address=192.168.1.71:4567 #注意三台服务器的设置不同。可以不加端口,默认就是4567的pxc通讯端口,请注意不是mysql的3306监听端口!
wsrep_provider=/usr/local/mysql/lib/libgalera_smm.so
wsrep_cluster_name=pxc-cluster
wsrep_cluster_address=gcomm://192.168.1.71:4567,192.168.1.72:4567,192.168.1.73:4567
wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth=sstuser:passw0rd
pxc_strict_mode=ENFORCING
192.168.1.72的配置内容如下:
### pxc2 | 192.168.1.72
### 右边#号的是percona server默认值
[mysqld]
####: mysqld基本设置
user =mysql # mysql
basedir =/usr/local/mysql/ # /usr/local/mysql/
datadir =/database/mysql/data/3306 # /usr/local/mysql/data
character_set_server =utf8 # latin1
log_timestamps =system # utc
skip_name_resolve =1 # 0
lower_case_table_names =1 # 0
####: pxc必须满足的
server-id =72 # 0 #注意三台服务器的设置不同
binlog_format =row # row
default_storage_engine =InnoDB # InnoDB
innodb_autoinc_lock_mode =2 # 1
#### pxc配置
wsrep_node_name=pxc2 #注意三台服务器的设置不同。可以不配置,不配置时默认取hostname
wsrep_node_address=192.168.1.72:4567 #注意三台服务器的设置不同。可以不加端口,默认就是4567的pxc通讯端口,请注意不是mysql的3306监听端口!
wsrep_provider=/usr/local/mysql/lib/libgalera_smm.so
wsrep_cluster_name=pxc-cluster
wsrep_cluster_address=gcomm://192.168.1.71:4567,192.168.1.72:4567,192.168.1.73:4567
wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth=sstuser:passw0rd
pxc_strict_mode=ENFORCING
192.168.1.73的配置内容如下:
### pxc3 | 192.168.1.73
### 右边#号的是percona server默认值
[mysqld]
####: mysqld基本设置
user =mysql # mysql
basedir =/usr/local/mysql/ # /usr/local/mysql/
datadir =/database/mysql/data/3306 # /usr/local/mysql/data
character_set_server =utf8 # latin1
log_timestamps =system # utc
skip_name_resolve =1 # 0
lower_case_table_names =1 # 0
####: pxc必须满足的
server-id =73 # 0 #注意三台服务器的设置不同
binlog_format =row # row
default_storage_engine =InnoDB # InnoDB
innodb_autoinc_lock_mode =2 # 1
#### pxc配置
wsrep_node_name=pxc3 #注意三台服务器的设置不同。可以不配置,不配置时默认取hostname
wsrep_node_address=192.168.1.73:4567 #注意三台服务器的设置不同。可以不加端口,默认就是4567的pxc通讯端口,请注意不是mysql的3306监听端口!
wsrep_provider=/usr/local/mysql/lib/libgalera_smm.so
wsrep_cluster_name=pxc-cluster
wsrep_cluster_address=gcomm://192.168.1.71:4567,192.168.1.72:4567,192.168.1.73:4567
wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth=sstuser:passw0rd
pxc_strict_mode=ENFORCING
安装xtrabackup
选择对应系统的版本
下载完成后安装
wget http://oss.jiugell.com/toolBox/63a9f0ea7bb98050796b649e85481845/software/pxc/percona-xtrabackup-24-2.4.20-1.el7.x86_64.rpm
yum -y install percona-xtrabackup-24-2.4.20-1.el7.x86_64.rpm
yum -y install qpress socat
各节点MySQL初始化
mysqld --defaults-file=/etc/my.cnf --initialize-insecure
引导第一个节点(192.168.1.71)
尝试后台启动mysql
mysqld_safe --defaults-file=/etc/my.cnf --wsrep-new-cluster &
启动成功后开始配置MySQL
mysql> set password='passw0rd';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'passw0rd' WITH GRANT OPTION;
mysql> CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 'passw0rd';
mysql> GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost';
mysql> FLUSH PRIVILEGES;
# 账号、密码,要和配置文件的wsrep_sst_auth=sstuser:passw0rd 对应
引导第二、三个节点
尝试后台启动mysql
mysqld_safe --defaults-file=/etc/my.cnf &
查看一下关于Write-Set Replication的参数:
show status like 'wsrep%';
这里的 wsrep_cluster_status 为集群状态 ,wsrep_cluster_size 为集群数量
更多推荐
所有评论(0)