14.mysql pxc rpm包安裝配置實戰

0.架構圖:

1.下載並上傳安裝包:
下載地址:https://www.percona.com/downloads/

1.0 操作系統上操作(三主機):
需要關閉防火牆、selinux.
添加mysql賬號:
groupadd mysql
useradd -g mysql mysql -d /home/mysql -s /sbin/nologin
mkdir /u01/pxc-mysql;
chown mysql:mysql /u01/pxc-mysql -R;
chmod  775 /u01/pxc-mysql -R
1.1解壓安裝包:
先安裝xtraBackup:

yum -y install  percona-xtrabackup-24-2.4.20-1.el6.x86_64.rpm
(或yum -y localinstall percona-xtrabackup-24-2.4.20-1.el6.x86_64.rpm)

1.2安裝Percona-XtraDB-Cluster
需要安裝包:
qpress 
socat
yum -y install perl-IO-Socket-SSL.noarch perl-DBD-MySQL.x86_64 perl-Time-HiRes openssl openssl-devel socat


https://pkgs.org/download/qpress
wget
https://repo.percona.com/yum/release/6/RPMS/x86_64/qpress-11-1.el6.x86_64.rpm

再執行安裝,即成功:

rpm包安裝配置文件位置/etc/percona-xtradb-cluster.conf/wsrep.cnf:




注意事項:
1).舊有主機上安裝pxc包,/etc/my.cnf並不會做好軟鏈接,可以自己手動做軟鏈接
cd/etc/alternatives
ln -s /etc/alternatives/my.cnf  my.cnf;
cd /etc;
ln -s /etc/alternatives/my.cnf my.cnf ;
這樣就用到了/etc/percona-xtradb-cluster.conf.d/wsrep.cnf真正配置文件 ,或者直接拷貝/etc/percona-xtradb-cluster.conf.d/wsrep.cnf配置文件到/etc/my.cnf即可。
2).socat本地安裝:
wget  http://www.dest-unreach.org/socat/download/socat-1.7.3.2.tar.gz
tar -zxf socat-1.7.3.2.tar.gz
cd socat-1.7.3.2
./configure --disable-fips
make && make install
cd ..
ln -s /usr/local/bin/socat /usr/bin/

1.3配置pxc配置文件參數:
cp /etc/percona-xtradb-cluster.conf.d/wsrep.cnf  /etc/my.cnf

節點1配置:

[mysqld]
user=mysql

innodb_buffer_pool_size=1024M
#basedir=/usr
datadir=/u01/pxc-mysql/
port=3306
server_id=330690
socket=/tmp/mysql.sock   
pid-file=/u01/pxc-mysql/mysql.pid
character-set-server=utf8mb4
log-bin=/u01/pxc-mysql/mysql-binlog
log-error=/u01/pxc-mysql/error.log
log_warnings=2

slow_query_log_file=/u01/pxc-mysql
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

wsrep_provider=/usr/lib64/galera3/libgalera_smm.so

wsrep_cluster_name=pxc-cluster
wsrep_cluster_address=gcomm://10.161.170.90,10.161.170.91,10.161.170.95

wsrep_node_name=pxc1
wsrep_node_address=10.161.170.90

wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth="sstuser:root123"

pxc_strict_mode=ENFORCING

binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2

節點2和3配置同上,只是需要修改wsrep_node_name、wsrep_node_address、server_id此三個參數值。
socket=/tmp/mysql.sock  這個值最好等於 /var/lib/mysql/mysql.sock;防止改完root密碼需要做ln -s /tmp/mysql.sock  /var/lib/mysql/mysql.sock  否則直接 mysql -uroot -proot123時會找/var/lib/mysql/mysql.sock而不是我們指定的/tmp/mysql.sock位置(即爲mysql -S /tmp/mysql.sock -uroot -p連接原因)。
3.啓動節點順序:
3.1第一個節點(/etc/init.d/mysql bootstrap-pxc,只在第一個節點使用bootstrap-pxc啓動):

查看初始化時臨時密碼:
不能直接連接:即mysql -uroot -p'ge9n7QO-a>sp'
也不能mysql -S /tmp/mysql.sock -uroot -p'ge9n7QO-a>sp'
只能mysql -S /tmp/mysql.sock -uroot -p回車後,輸入密碼ge9n7QO-a>sp登錄:
mysql -S /tmp/mysql.sock -uroot -p ;

修改密碼:
set password='root123';
alter user 'root'@'localhost' identified by 'root123';
alter user 'root'@'localhost' password expire never;
flush privileges;

驗證root登錄:

創建pxc傳輸賬號(配置文件中賬號及密碼對應wsrep_sst_auth="sstuser:root123"):
create user 'sstuser'@'localhost'  identified by 'root123';
grant reload,lock tables,process,replication client on *.* to 'sstuser'@'localhost';
flush privileges;

驗證sstuser登錄:

啓動第二個節點,配置文件都修改到位後:
/etc/init.d/mysql start;

檢查第二節點狀態:
mysql -usstuser -proot123 -S /tmp/mysql.sock -e 'show status like "wsrep_cluster%"'

啓動第三個節點,配置文件都修改到位後:
/etc/init.d/mysql start ;
mysql -usstuser -proot123 -S /tmp/mysql.sock -e 'show status like "wsrep_cluster%"'


第三節點啓動報錯解決:
原因:因爲主機之前有安裝過mysql造成 ; chmod 755 /etc/init.d/mysql  ;
錯誤如下:

檢查節點3的錯誤日誌如下vi /u01/pxc-mysql/error.log:

對比三主機/etc/my.cnf(644)  、/etc/init.d/mysql (755)、/etc/percona-xtradb-cluster.conf.d/wsrep.cnf 、/u01/pxc-mysql(775)目錄權限.
4.測試:
4.1授予root登錄權限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root123' WITH GRANT OPTION;
flush privileges; select user,host from user;

在任意節點上授權即可。
測試連接如下:

4.2創建一個管理賬號(root登錄任意窗口):
create user 'admin'@'%' identified by 'root123';
grant all privileges on *.* to 'admin'@'%' ;
flush privileges;

測試連接用戶admin:


4.3創建數據庫及表:
create database test CHARACTER SET 'utf8mb4';

刷新各連接,已經同步:

在任意節點上test庫上創建表:
CREATE TABLE `tb_ad` (
  `id` bigint(20) NOT NULL,
  `type` int(10) DEFAULT NULL ,
  `titile` varchar(100) DEFAULT NULL ,
  `url` varchar(200) DEFAULT NULL ,
  `create` datetime DEFAULT NULL,
  `updated` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
檢查同步狀態;

到此,pxc測試完成。

5. 官方文檔安裝筆記:
https://www.percona.com/doc/percona-xtradb-cluster/5.7/install/yum.html#yum

5.1官網三主機:
192.168.70.61
192.168.70.62
192.168.70.63

5.2.pxc需要的端口不能佔用:vi /etc/services檢查(netstat -tunlp |egrep "3306|4444|4567|4568")
    3306
    4444
    4567
    4568
5.3.selinux關閉和防火牆關閉
setenforce 0 (vi /etc/selinux/conf 改爲SELINUX=disable)

5.4.安裝如下:yum install Percona-XtraDB-Cluster-57
wget https://repo.percona.com/yum/release/6/RPMS/x86_64/qpress-11-1.el6.x86_64.rpm
包安裝如下:
    Percona-XtraDB-Cluster-devel-57
    Percona-XtraDB-Cluster-test-57
    Percona-XtraDB-Cluster-debuginfo-57
    Percona-XtraDB-Cluster-galera-3-debuginfo
    Percona-XtraDB-Cluster-shared-57

(備註:service mysql start
  grep 'temporary password' /var/log/mysqld.log
   mysql -u root -p
   ALTER USER 'root'@'localhost' IDENTIFIED BY 'rootPass';)

下載好了本地安裝:
rpm -ivh qress
yum localinstall  Percona-XtraDB*rpm
cd /etc/percona-xtradb-cluster.conf.d
cp wsrep.cnf  wsrep.cnf-bak

5.5.配置文件:redhat或centos:
節點1:/etc/percona-xtradb-cluster.conf.d/wsrep.cnf
wsrep_provider=/usr/lib64/galera3/libgalera_smm.so

wsrep_cluster_name=pxc-cluster
wsrep_cluster_address=gcomm://192.168.70.61,192.168.70.62,192.168.70.63

wsrep_node_name=pxc1
wsrep_node_address=192.168.70.61

wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth=sstuser:passw0rd

pxc_strict_mode=ENFORCING

binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2

第二節點:
wsrep_provider=/usr/lib64/galera3/libgalera_smm.so

wsrep_cluster_name=pxc-cluster
wsrep_cluster_address=gcomm://192.168.70.61,192.168.70.62,192.168.70.63

wsrep_node_name=pxc2
wsrep_node_address=192.168.70.62

wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth=sstuser:passw0rd

pxc_strict_mode=ENFORCING

binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
第三節點:
wsrep_provider=/usr/lib64/galera3/libgalera_smm.so

wsrep_cluster_name=pxc-cluster
wsrep_cluster_address=gcomm://192.168.70.61,192.168.70.62,192.168.70.63

wsrep_node_name=pxc3
wsrep_node_address=192.168.70.63

wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth=sstuser:passw0rd

pxc_strict_mode=ENFORCING

binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
 
備註: Percona XtraDB Cluster uses Percona XtraBackup for State Snapshot Transfer (SST).
wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth=<sst_user>:<sst_pass>

第一節點初始化:
/etc/init.d/mysql bootstrap-pxc
只在第一個節點執行(redhat7或centos7:systemctl start [email protected]

第一節點創建用戶和權限:
show status like 'wsrep%';
CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 'passw0rd';
GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO   'sstuser'@'localhost';
FLUSH PRIVILEGES;

xtrabackup備份:
$ xtrabackup --user=DVADER --password=14MY0URF4TH3R --backup \
  --target-dir=/data/bkps/
$ innobackupex --user=DBUSER --password=SECRET /path/to/backup/dir/
$ innobackupex --user=LUKE  --password=US3TH3F0RC3 --stream=tar ./ | bzip2 -
備份用戶舉例:
CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 's3cret';
GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO   'bkpuser'@'localhost';
FLUSH PRIVILEGES;

第二節點添加:
/etc/init.d/mysql start
show status like 'wsrep%';

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章