XtraDB是Percona公司出的一款開放免費的MySQL系統,前年玩過這個東西後也沒有留下筆記,趁有點時間的時候重新再試做一次,中間果然又遇到很多障礙,後來成功後得要趕緊留下紀錄,不然以後要做又會忘記了。
一‧事前準備 四台VM,基本配備:
4核心CPU、4GB RAM、15GB硬碟
node1: 10.113.112.52 pxc1
node1: 10.113.112.52 pxc1
node2: 10.113.112.53 pxc2
node3: 10.113.112.54 pxc3
(要先確認彼此都能ping或ssh得到)
node3: 10.113.112.54 pxc3
(要先確認彼此都能ping或ssh得到)
二‧防火牆調整通訊port
# firewall-cmd --permanent --add-port={3306,4444,4567,4568}/tcp
# firewall-cmd --reload
# firewall-cmd --reload
三‧關閉SELinux
XtraDB跟SELinux沒有完整相容,所以必須關閉
# vim /etc/selinux/config
SELinux設定為disabled |
四‧下載並用root安裝XtraDB
1.四台node都要下載
# yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm yum
# makecache fast
# makecache fast
# yum install -y Percona-XtraDB-Cluster-57
2.四台node各自啟動MySQL
# systemctl enable --now mysql.service
# grep 'temporary password' /var/log/mysqld.log
2021-12-30T01:57:55.528469Z 1 [Note] A temporary password is generated for root@localhost: a3wrV-VW&qfe
\\啟動MySQL時會自動產生一個臨時密碼,第一次登入後再去修改密碼
# mysql -u root -pa3wrV-VW&qfe
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '1qaz@WSX';
mysql> flush privileges;
mysql> exit
1.pxc1、2和3都要停整的配置檔案
# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
2.pxc1要修改的設定
wsrep_cluster_address=gcomm://10.113.112.52,10.113.112.53,10.113.112.54
wsrep_node_address=10.113.112.52
wsrep_cluster_name=pxc-cluster
wsrep_node_name=pxc1
wsrep_sst_auth="sstuser:1qaz@WSX"
3.pxc2要修改的設定
wsrep_cluster_address=gcomm://10.113.112.52,10.113.112.53,10.113.112.54
wsrep_node_address=10.113.112.53
wsrep_cluster_name=pxc-cluster
wsrep_node_name=pxc2
wsrep_sst_auth="sstuser:1qaz@WSX"
4.pxc3要修改的設定
wsrep_cluster_address=gcomm://10.113.112.52,10.113.112.53,10.113.112.54
wsrep_node_address=10.113.112.54
wsrep_cluster_name=pxc-cluster
wsrep_node_name=pxc3
wsrep_sst_auth="sstuser:1qaz@WSX"
六‧啟動複寫
1.node1先帶頭啟動並建立複寫用帳號
# systemctl start mysql@bootstrap.service
# mysql -u root -p
mysql> CREATE USER 'sstuser'@'localhost' IDENTIFIED BY '1qaz@WSX';
mysql> GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> exit
2.node2和node3啟動MySQL,加入cluster
# systemctl start mysql.service
3.回到node1檢視複寫狀態
# mysql -u root -p
mysql>show status like 'wsrep%';
mysql>show status like 'wsrep%';
mysql>show status like 'wsrep_cluster_size';
4.建立資料表測試複寫
在node1上建立資料庫和資料表
mysql> CREATE DATABASE RECIPES;
mysql> USE RECIPES;
mysql> CREATE TABLE TAB1 (CONTACT_ID INT PRIMARY KEY, CONTACT_NAME VARCHAR(20));
mysql> INSERT INTO TAB1 VALUES (1,'sadegh');
mysql> INSERT INTO TAB1 VALUES (2,'nix');
mysql> INSERT INTO TAB1 VALUES (3,'mamad');
mysql> exit
Bye
再到另兩台node查看有無同步
mysql> USE RECIPES;
mysql> SELECT * FROM TAB1;
複寫成功,XtraDB有正常運作 |
沒有留言:
張貼留言