MySQL--Percona-XtraDB-Cluster 5.6安装笔记

安装环境:

有三台干净的CentOS 6的服务器,IP配置为:192.168.166.169,192.168.166.170,192.168.166.171,准备搭建三节点的Percona XtraDB Cluster

================================================

相关安装包下载:

https://www.percona.com/downloads/

 

也可以先使用yum install 来安装percona-release-0.1-4.noarch.rpm的包:

yum install https://www.percona.com/redir/downloads/percona-release/redhat/latest/percona-release-0.1-4.noarch.rpm

然后使用yum download获取最新的包及依赖包:

yum -y install --downloadonly Percona-XtraDB-Cluster-56

================================================

在每个群集节点上进行以下安装

使用yum安装依赖的包:

yum -y install perl-IO-Socket-SSL perl-DBD-MySQL perl-Time-HiRes nc rsync libaio numactl lsof

使用RPM安装:

rpm -ivh libev-4.03-3.el6.x86_64.rpm
rpm -ivh compat-readline5-5.2-17.1.el6.x86_64.rpm
rpm -ivh socat-1.7.2.3-1.el6.x86_64.rpm
rpm -ivh percona-xtrabackup-2.2.12-1.el6.x86_64.rpm
rpm -ivh percona-xtrabackup-debuginfo-2.2.12-1.el6.x86_64.rpm
rpm -ivh percona-xtrabackup-test-2.2.12-1.el6.x86_64.rpm
rpm -ivh Percona-XtraDB-Cluster-shared-56-5.6.35-26.20.2.el6.x86_64.rpm
rpm -ivh Percona-XtraDB-Cluster-galera-3-3.20-2.el6.x86_64.rpm
rpm -ivh Percona-XtraDB-Cluster-client-56-5.6.35-26.20.2.el6.x86_64.rpm
rpm -ivh Percona-XtraDB-Cluster-devel-56-5.6.35-26.20.2.el6.x86_64.rpm
rpm -ivh Percona-XtraDB-Cluster-server-56-5.6.35-26.20.2.el6.x86_64.rpm

================================================

修改各群集节点上/etc/my.cnf增加以下信息:

[mysqld]

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql

skip-host-cache
skip-name-resolve

server_id=1
wsrep_node_name=pxc1
wsrep_provider=/usr/lib64/libgalera_smm.so  
wsrep_cluster_address="gcomm://192.168.166.169,192.168.166.170,192.168.166.171"  
wsrep_sst_auth="sstuser:s3cret" 
wsrep_provider_options="gcache.size=4G"  
wsrep_cluster_name=Percona  
wsrep_sst_method=rsync  
wsrep_slave_threads=4  
log_slave_updates  
innodb_locks_unsafe_for_binlog=1  
innodb_autoinc_lock_mode=2

各群集节点上server_id和wsrep_node_name设置为不同的值

================================================

群集的第一个节点不需要进行数据同步,使用bootstrap启动,等同于将wsrep_cluster_address方式设置为gcomm://

假设将192.168.166.169当做第一个群集节点,使用下面方式启动:

## 在CentOS6下,使用下面方式启动第一个节点
/etc/init.d/mysql bootstrap-pxc

##在CentOS7下,使用下面方式启动第一个节点
systemctl start mysql@bootstrap.service

 

对于PXC 5.6版本,安装后的root默认密码为空,对于PXC 5.7版本,默认root密码写入到/var/log/mysqld.log,可以使用cat /var/log/mysqld.log |grep password来查看

第一个节点启动后,应该修改root账号密码,并新增群集同步的账号密码,登录第一个启动节点,执行下面脚本:

##更新root账号密码
UPDATE mysql.user 
SET Password=PASSWORD('Abc@123')
WHERE user='root';
FLUSH PRIVILEGES;

## 创建wsrep_sst_auth使用的账号
CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 's3cret';
GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost';
FLUSH PRIVILEGES;

PXC 5.7版本中mysql.user表的密码字段更新为authentication_string,需要使用ALTER语句来更改

================================================

对于群集的第二或第N个节点,采用普通的方式启动:

## 在CentOS6下使用下面方式启动第二节点:
/etc/init.d/mysql start

## 在CentOS7下使用下面方式启动第二节点:
systemctl start mysql

启动成功后,会自动从第一个节点同步数据,因此无需在第二或第N个节点上修改root账号,可以直接使用第一节点上更新后的root账号密码登录。

================================================

搭建时遇到的问题:

当wsrep_sst_method设置为mysqldump或xtrabackup时,会报如下错误:

[ERROR] WSREP: Failed to read uuid:seqno from joiner script.
[ERROR] WSREP: SST script aborted with error 32 (Broken pipe)
[ERROR] WSREP: SST failed: 32 (Broken pipe)
[ERROR] Aborting

因此对于新创建的群集,推荐使用rsync来搭建

相关参考连接:

https://www.percona.com/doc/percona-xtradb-cluster/5.6/wsrep-system-index.html#wsrep_sst_method

================================================

打完收工

 

posted on 2017-05-03 15:20  笑东风  阅读(728)  评论(0编辑  收藏  举报

导航