1. 程式人生 > >CentOS 7.2下安裝PXC 5.7.21

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 libev-4.15-1.el6.rf.x86_64.rpm
[[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]
local]# ln -s Percona-XtraDB-Cluster-5.7.21-rel20-29.26.1.Linux.x86_64.ssl101.tar.gz pxc_mysql

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個節點都同步完成。