在CentOS 6上搭建PXC环境

文/qiz 2017-08-17 18:20:00

简介

Percona XtraDB Cluster简称PXC,是Percona公司开发的高可用性和扩展性的MySQL开源集群方案,集成了Percona Server、Percona XtraBackup以及Codership Galera库。本文将带领大家在CentOS 6操作系统上搭建一套3节点的PXC环境。

在安装PXC环境之前,做好以下准备:

  1. 各个节点能访问外网;
  2. 节点间防火墙打开3306, 4444, 4567和4568端口;
  3. 各个节点关闭SELinux。

安装PXC

安装Percona yum源:

sudo yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm

安装PXC软件包:

sudo yum install Percona-XtraDB-Cluster-56

配置节点1

配置节点1的/etc/my.cnf:

[mysqld]

datadir=/var/lib/mysql
user=mysql

# Galera库的路径
wsrep_provider=/usr/lib64/libgalera_smm.so

# 各个节点的互联IP
wsrep_cluster_address=gcomm://172.16.51.136,172.16.51.148,172.16.51.149

# binlog格式应为ROW
binlog_format=ROW

# 支持InnoDB引擎表, 部分支持MyISAM引擎表
default_storage_engine=InnoDB

# Galera需要设置的自增锁模式
innodb_autoinc_lock_mode=2

# 节点1的地址
wsrep_node_address=172.16.51.136

# SST使用xtrabackup方法
wsrep_sst_method=xtrabackup-v2

# 集群名称
wsrep_cluster_name=my_centos_cluster

# SST使用的账号 
wsrep_sst_auth="sstuser:sstpass"

启动节点1:

sudo /etc/init.d/mysql bootstrap-pxc

创建SST账号:

mysql> CREATE USER 'sstuser'@'localhost' IDENTIFIED BY 'sstpass';
mysql> GRANT PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost';
mysql> FLUSH PRIVILEGES;

配置节点2

配置节点2的/etc/my.cnf:

[mysqld]

datadir=/var/lib/mysql
user=mysql
wsrep_provider=/usr/lib64/libgalera_smm.so
wsrep_cluster_address=gcomm://172.16.51.136,172.16.51.148,172.16.51.149
binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
wsrep_node_address=172.16.51.148
wsrep_sst_method=xtrabackup-v2
wsrep_cluster_name=my_centos_cluster
wsrep_sst_auth="sstuser:sstpass"

启动节点2:

sudo /etc/init.d/mysql start

配置节点3

配置节点3的/etc/my.cnf:

[mysqld]

datadir=/var/lib/mysql
user=mysql
wsrep_provider=/usr/lib64/libgalera_smm.so
wsrep_cluster_address=gcomm://172.16.51.136,172.16.51.148,172.16.51.149
binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
wsrep_node_address=172.16.51.149
wsrep_sst_method=xtrabackup-v2
wsrep_cluster_name=my_centos_cluster
wsrep_sst_auth="sstuser:sstpass"

启动节点3:

sudo /etc/init.d/mysql start

测试集群复制

节点1创建数据库:

mysql> create database pxc;

节点2创建表:

mysql> use pxc;
mysql> create table test (id int primary key, name varchar(32));

节点3插入数据:

mysql> insert into pxc.test values (1, 'test');

各个节点查询数据:

mysql> select * from pxc.test;
+----+------+
| id | name |
+----+------+
|  1 | test |
+----+------+
1 row in set (0.00 sec)

可以看到集群各个节点的数据是同步的。


参考资料

知识共享许可协议
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

最新文章 全部