CentOS 7.2下安裝PXC 5.7.21
PXC的安裝非常簡單。
--軟體下載
https://www.percona.com/downloads/Percona-XtraDB-Cluster-57/LATEST/
--基礎環境準備
[[email protected] ~]# vim /etc/hosts ---在3個節點hosts檔案加入如下資訊
192.168.2.100 node1
192.168.2.200 node2
192.168.2.210 node3
[[email protected] ~]# rpm -e --nodeps mariadb mariadb-server mariadb-libs marisa --解除安裝
1、3個節點安裝依賴包
yum install -y git scons gcc* gcc-c++ openssl* check cmake bison \
boost-devel asio-devel libaio-devel ncurses-devel readline-devel pam-devel \
socat perl-time-hires perl-io-socket-ssl.noarch perl-dbd-mysql.x86_64
--解壓軟體包,並安裝:
下載軟體包要注意:切記選擇ssl101版本,官方使用手冊上有如下說明
[[email protected] ~]# rpm -ivh percona-xtrabackup-24-2.4.11-1.el7.x86_64.rpm
[[email protected] ~]# tar zxvf Percona-XtraDB-Cluster-5.7.21-rel20-29.26.1.Linux.x86_64.ssl101.tar.gz -C /usr/local/^C
[[email protected] ~]# cd /usr/local/
[[email protected]
2、建立使用者,新建資料夾請授權【三個節點都要操作】 :
[[email protected] ~]# userdel mysql
[[email protected] ~]# useradd -g mysql mysql
[[email protected] ~]# passwd mysql
[[email protected] ~]# mkdir -p /usr/local/pxc_mysql/{data,logs,tmp}
[[email protected] ~]# mkdir -p /usr/local/pxc_mysql/logs/binlog
[[email protected] ~]# chown -R mysql:mysql /usr/local/pxc_mysql/
[[email protected] ~]# chmod -R +x /usr/local/pxc_mysql/
3、切換mysql使用者建立my.cnf (該配置檔案只簡單的幾個引數,如果生產環境需要更多的資料庫引數)
[[email protected] ~]# su - mysql
[[email protected] ~]$ cd /usr/local/pxc_mysql/
[[email protected] pxc_mysql]$ vi my.cnf
[client]
socket=/usr/local/pxc_mysql/data
[mysqld]
server-id=142
port = 3306
basedir=/usr/local/pxc_mysql
datadir=/usr/local/pxc_mysql/data
socket=/usr/local/pxc_mysql/data/mysql.sock
log-error=/usr/local/pxc_mysql/data/mysqld.log
pid-file=/usr/local/pxc_mysql/data/mysqld.pid
log-bin=/usr/local/pxc_mysql/logs
slow_query_log_file = /usr/local/pxc_mysql/data/slow.log
log_slave_updates
expire_logs_days=7
binlog_format=ROW
innodb_buffer_pool_size = 1524M
#pxc
wsrep_provider=/usr/local/pxc_mysql/lib/libgalera_smm.so
wsrep_cluster_name=pxc-nie
wsrep_cluster_address=gcomm://192.168.2.100,192.168.2.200,192.168.2.210
wsrep_node_name=node1
wsrep_node_address=192.168.2.100
wsrep_sst_method=xtrabackup-v2
wsrep_sst_auth=pxc:123456
pxc_strict_mode=ENFORCING
binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
注意:
其他兩個個節點,只需要修改:
server-id=142 --id不能一樣
wsrep_node_name=node1 --改成自己節點的主機名
wsrep_node_address=192.168.2.100 --改成自己節點的主機IP
4、初始化3個節點的資料庫
/usr/local/pxc_mysql/bin/mysqld --defaults-file=/usr/local/pxc_mysql/my.cnf --datadir=/usr/local/pxc_mysql/data --basedir=/usr/local/pxc_mysql --initialize
(在/usr/local/pxc_mysql/data/mysqld.log這個日誌裡有root的密碼)
5、首先啟動第一個節點:
[[email protected] pxc_mysql]# /usr/local/pxc_mysql/bin/mysqld_safe --defaults-file=/usr/local/pxc_mysql/my.cnf --wsrep-new-cluster --user=mysql & ---用root起
然後進入MySQL,執行如下操作(如果進不去,報錯密碼過期,那麼在my.cnf檔案加入:skip-grant-tables,然後無密碼進入資料庫: update mysql.user set password_expired="N" where user="root"; 最後把引數從配置檔案去掉,重啟資料庫,用剛才的root密碼進入即可。)
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
MySQL [(none)]> show status like 'wsrep_local_state%';
+---------------------------+--------------------------------------+
| Variable_name | Value |
+---------------------------+--------------------------------------+
| wsrep_local_state_uuid | c2ab52e7-67cf-11e8-9d02-e76acee85210 |
| wsrep_local_state | 4 |
| wsrep_local_state_comment | Synced |
+---------------------------+--------------------------------------+
3 rows in set (0.00 sec)
MySQL [(none)]> show status like 'wsrep_cluster_%';
+--------------------------+--------------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------------+
| wsrep_cluster_conf_id | 1 |
| wsrep_cluster_size | 1 |
| wsrep_cluster_state_uuid | c2ab52e7-67cf-11e8-9d02-e76acee85210 |
| wsrep_cluster_status | Primary |
+--------------------------+--------------------------------------+
4 rows in set (0.00 sec)
MySQL [(none)]> GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'pxc'@'%' IDENTIFIED BY '123456'; ---建立一個SST使用者
MySQL [(none)]> flush privileges;
(從上面的資訊叢集大小為1個節點,狀態為primary,節點處於Synced狀態,它已完全連線,可以進行write-set replication。 )
6、依次啟動第二、第三個節點:
[[email protected] pxc_mysql]# /usr/local/pxc_mysql/bin/mysqld_safe --defaults-file=/usr/local/pxc_mysql/my.cnf --user=mysql &
7、驗證叢集部署成功:
在各個節點檢視:
MySQL [(none)]> show status like 'wsrep_cluster_%';
+--------------------------+--------------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------------+
| wsrep_cluster_conf_id | 5 |
| wsrep_cluster_size | 3 | ---現在是3個節點都加入了叢集
| wsrep_cluster_state_uuid | c2ab52e7-67cf-11e8-9d02-e76acee85210 |
| wsrep_cluster_status | Primary |
+--------------------------+--------------------------------------+
在其中一個節點建立表或資料庫 看看是否3個節點都同步完成。