在Debian 7上设置Percona

・6 分钟阅读

MySQL多主复制是MySQL中的一个优秀特性,但是,只有一个问题; 标准多主复制似乎永远不会像主从复制那样稳定,它总是需要注意,这就是Percona的用武之地,Percona团队开发了一种称为Percona Xtradb群集的神奇产品,XtraDB采用Galera提供的世界级多重主复制功能,那么,我们还在等什么呢?让我们开始吧。

前提条件

  • 您选择的Linux发行版。在本指南中,我们会使用Debian 7,如果你愿意,可以使用不同的发行版,(注意你可能需要调整此指南才能使用你所选择的发行版)
  • 两个运行相同操作系统的节点,
  • 了解命令行和SSH的基本知识,

入门

SSH到虚拟机中,

VM 1:


ssh root@xxx.xxx.xxx.xxx

VM 2:


ssh root@yyy.yyy.yyy.yyy

添加Percona的存储库

在两个节点上,执行以下命令:


echo -e"deb http://repo.percona.com/apt wheezy mainndeb-src http://repo.percona.com/apt wheezy main" >> /etc/apt/sources.list.d/percona.list && apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A

现在我们需要更新源代码:

 
apt-get update

 
安装Percona Xtradb群集,

安装非常简单:


apt-get install percona-xtradb-cluster-56

如果你熟悉MySQL,那么接下来的屏幕应该看起来很熟悉,只要按照屏幕上的指示输入密码。

配置第一个节点。

配置非常简单,你只需要向MySQL配置文件添加几行代码,在这种情况下,我将使用Nano,但是,您可以使用您选择的文本编辑器。

使用此选项可以在两台计算机上打开该文件:


nano /etc/mysql/my.cnf

转到bind-address =127.0.0.1,并且在它之前添加一个#,在(commented-out )bind-address行之后,立即添加以下行:


### Galera library.

wsrep_provider=/usr/lib/libgalera_smm.so

### IP addresses of your two nodes.

wsrep_cluster_address=gcomm://xxx.xxx.xxx.xx,yyy.yyy.yyy.yyy

### This will not work unless binlog is formatted to ROW.

binlog_format=ROW

### This changes how InnoDB autoincrement locks are managed and is a requirement for Galera

innodb_autoinc_lock_mode=2
### Node #1 address (The node you are ssh`d into now.)

wsrep_node_address=xxx.xxx.xxx.xx

### SST Method

wsrep_sst_method=xtrabackup-v2

### Cluster name

wsrep_cluster_name=xtradb

### Node Name, in this case we will just call it xtradb1

wsrep_node_name=xtradb1

### Authentication, REMEMBER THIS.

wsrep_sst_auth="sstuser:yoursecretpass"

保存并退出文件(Ctrl+X )。

现在让我们引导节点:


/etc/init.d/mysql bootstrap-pxc

接下来,我们需要创建用户,并且赋予它权限,这就是你需要记住密码的原因,你将需要登录到MySQL shell ( mysql -u root -p )并键入以下(不包括mysql> ):


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

配置第二个node ,

除了两个值之外,第二个节点的配置与第一个节点的配置相同。再次注释bind-address =127.0.0.1,并且在它后面立即粘贴以下内容,请记住相应地编辑值。


### Galera library.

wsrep_provider=/usr/lib/libgalera_smm.so

### IP addresses of your two nodes.

wsrep_cluster_address=gcomm://xxx.xxx.xxx.xx,yyy.yyy.yyy.yyy

### This will not work unless binlog is formatted to ROW.

binlog_format=ROW

### This changes how InnoDB autoincrement locks are managed and is a requirement for Galera

innodb_autoinc_lock_mode=2

### Node #2 address (The node you are ssh`d into now.)

wsrep_node_address=yyy.yyy.yyy.yyy

### SST Method

wsrep_sst_method=xtrabackup-v2

### Cluster name

wsrep_cluster_name=xtradb

### Node Name, in this case we will just call it xtradb1

wsrep_node_name=xtradb1

### Authentication, REMEMBER THIS.

wsrep_sst_auth="sstuser:yoursecretpass"

接下来,键入/etc/init.d/mysql start ,你会看到以下输出:


[....] Starting MySQL (Percona XtraDB Cluster) database server: mysqld . .
[....] State transfer in progress [ok]

这样就行了,你已经配置了一个多主XtraDB集群!这是一个具有出色性能的XtraDB集群。

测试群集,

在节点1上键入 mysql -u root -p 然后,create database demo;,在相反的节点上,用root登录到MySQL,然后输入show databases; ,如果一切正常,那么你将看到你在对面节点上创建的数据库!

讨论
Huangzhongbang profile image