PXC(Percona-XtraDB-Cluster)5.7版本叢集部署
Centos 7.3系統部署Mysql 叢集
PXC三個節點分别執行和安裝
(1)配置hosts
cat /etc/hosts
172.16.2.10 node1
172.16.2.11 node2
172.16.2.12 node3
(2)依賴
yum –y remove mariadb-*
yum -y install gcc gcc-c++ perl-IO-Socket-SSL.noarch perl-DBD-MySQL.x86_64 perl-Time-HiRes openssl* openssl-devel socat libcurl-devel wget
(3)下載下傳Percona XtraBackup 2.4
wget https://www.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.10/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.10-1.el7.x86_64.rpm
yum -y localinstall percona-xtrabackup-24-2.4.10-1.el7.x86_64.rpm
(4)安裝Percona Release
yum -y install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
(5)安裝PXC 5.7二進制包
wget https://www.percona.com/downloads/Percona-XtraDB-Cluster-LATEST/Percona-XtraDB-Cluster-5.7.21-29.26/binary/tarball/Percona-XtraDB-Cluster-5.7.21-rel20-29.26.1.Linux.x86_64.ssl1:102.tar.gz
tar -xf Percona-XtraDB-Cluster-5.7.21-rel20-29.26.1.Linux.x86_64.ssl1_102.tar.gz -C /usr/local/
mv /usr/local/Percona-XtraDB-Cluster-5.7.21-rel20-29.26.1.Linux.x86_64.ssl1\:102 /usr/local/mysql
useradd -s /sbin/nologin mysql
chown mysql.mysql -R /usr/local/mysql
mkdir -p /data/mysql/data
chown mysql.mysql -R /data/mysql/
echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh
先配置第一台機器,并成功啟動,在配置其他兩台
在第一台主機上建立配置檔案:
vim /etc/my.cnf
[client]
port = 3306
socket= /data/mysql/mysql.sock
default-character-set=utf8
[mysqld]
basedir = /usr/local/mysql
datadir = /data/mysql/data
pid-file = /data/mysql/mysql.pid
character-set-server=utf8
init_connect = 'SET NAMES utf8'
log-bin=/data/mysql/log_bin
server-id = 101
innodb_buffer_pool_size = 100M
innodb_data_file_path = ibdata1:10M:autoextend
innodb_data_home_dir = /data/mysql
innodb_file_per_table=1
skip-name-resolve
port = 3306
socket = /data/mysql/mysql.sock
user=mysql
log_error=mysql_error.log
#pxc
binlog_format=ROW
wsrep_cluster_address=gcomm://172.16.2.10,172.16.2.11,172.16.2.12 #三個節點都保持一樣
wsrep_provider=/usr/local/mysql/lib/libgalera_smm.so
wsrep_node_address=172.16.2.10 #根據不同的node ip進行修改
wsrep_slave_threads=2
wsrep_cluster_name=pxc_mysql #同一個cluster此值需要一緻
wsrep_sst_method=xtrabackup-v2
wsrep_node_name=node_1 #不同節點修改為不同的名字
innodb_autoinc_lock_mode=2
wsrep_sst_auth="sstuser:pxcmysql"
log-slave-updates
[mysql]
no-auto-rehash
default-character-set=utf8
把這個檔案寫好了,傳到其他兩台機器的 /etc 下面,
每個主機的server-id 和wsrep_node_address、wsrep_node_name保持不同即可
初始化mysql5.7:(初始化隻在第一個節點執行)
mysqld --initialize --user=mysql --datadir=/data/mysql/data
初始化參數使用--initialize-insecure,這樣不會設定初始化root密碼,如果是 --initialize的話,會随機生成一個密碼
grep "password" /data/mysql/data/error.log
啟動pxc mysql5.7
node1上:
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --wsrep-new-cluster --user=mysql &
建立傳送使用者:
grant all privileges on *.* to 'sstuser'@'localhost' identified by 'pxcmysql';(一定要localhost)
flush privileges;
檢視叢集狀态
show status like 'wsrep%';
其他節點安裝,具體步驟檢視前面步驟
scp percona-xtrabackup-24-2.4.10-1.el7.x86_64.rpm 172.16.2.11:/root
scp percona-xtrabackup-24-2.4.10-1.el7.x86_64.rpm 172.16.2.12:/root
scp Percona-XtraDB-Cluster-5.7.21-rel20-29.26.1.Linux.x86_64.ssl1_102.tar.gz 172.16.2.11:/root
scp Percona-XtraDB-Cluster-5.7.21-rel20-29.26.1.Linux.x86_64.ssl1_102.tar.gz 172.16.2.12:/root
scp /etc/my.cnf 172.16.2.11:/etc/
scp /etc/my.cnf 172.16.2.12:/etc/
node2和node3啟動(無需初始化)
/usr/local/mysql/bin/mysqld_safe –-defaults-file=/etc/my.cnf &