在Debian 7上设置Percona
Huangzhongbang
・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; ,如果一切正常,那么你将看到你在对面节点上创建的数据库!