如何在阿里云的Ubuntu 16.04系统上使用MySQL 5.6配置Galera集群

在此次配置中,由于资源有限,我只配置了两台阿里云服务器,如果再加服务器的话,和添加第二台的步骤一样。
(1)配置环境
两台阿里云服务器,服务器系统版本为Ubuntu16.04
服务器IP:
172.17.252.31
172.17.226.181
两台服务器上都装有mysql5.6
(2)安装过程
0.准备工作
可以开放阿里云服务器的22端口,然后输入命令

ssh root@IP

连接阿里云,在本地的终端上方便的对服务器进行一系列操作
1.添加必要依赖

apt-get install python-software-properties  
apt-get install software-properties-common

如果安装不成功的话可以试一试执行命令sudo apt-get update
2.添加存储库密钥
为了保证软件包可信,需添加存储库密钥用于验证,命令如下:

apt-key adv --keyserver keyserver.ubuntu.com --recv BC19DDBA

然后使用

apt-get update

来更新apt包管理清单
3.添加Galera存储库

cd /etc/apt/sources.list.d
vim galera.list 

在gelera.list文件中添加以下库内容:

deb http://releases.galeracluster.com/mysql-wsrep-5.6/ubuntu xenial main
deb http://releases.galeracluster.com/galera-3/ubuntu xenial main

4.继续配置源

cd /etc/apt/preferences.d
vim  galera.pref

在galera.pref文件中添加如下配置:

Package: *  
Pin: origin releases.galeracluster.com  
Pin-Priority: 1001 

之后再执行

apt-get update

5.在所有服务器上安装Mysql和Galera

sudo apt-get install galera-3 galera-arbitrator-3 mysql-wsrep-5.6 

在安装过程中会为数据库设置密码
安装rsync依赖

sudo apt-get install rsync

(3)配置过程
1.在主节点172.17.252.31上设置如下:

cd /etc
vim  my.cnf

在该文件中添加以下的内容:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
binlog_format=ROW
bind-address=0.0.0.0
#bind-address=127.0.0.1
default_storage_engine=innodb
innodb_autoinc_lock_mode=2
innodb_flush_log_at_trx_commit=0
innodb_buffer_pool_size=122M
wsrep_provider=/usr/lib/libgalera_smm.so
wsrep_provider_options="gcache.size=300M; gcache.page_size=300M"
wsrep_cluster_name="mycluster"
wsrep_cluster_address="gcomm://172.17.226.181,172.17.252.31"
wsrep_sst_method=rsync

[mysql_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysqld]
wsrep_cluster_name="mycluster"
wsrep_cluster_address="gcomm://172.17.226.181,172.17.252.31"

wsrep_node_name="mynode133"#是否加引号? 
wsrep_node_address="172.17.226.181"#主节点IP

2.在第二个节点上设置如下:

cd /etc
vim  my.cnf

在该文件中添加以下的内容:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
binlog_format=ROW
bind-address=0.0.0.0
#bind-address=127.0.0.1
default_storage_engine=innodb
innodb_autoinc_lock_mode=2
innodb_flush_log_at_trx_commit=0
innodb_buffer_pool_size=122M
wsrep_provider=/usr/lib/libgalera_smm.so
wsrep_provider_options="gcache.size=300M; gcache.page_size=300M"
wsrep_cluster_name="mycluster"
wsrep_cluster_address="gcomm://172.17.226.181,172.17.252.31"
wsrep_sst_method=rsync

[mysql_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysqld]
wsrep_cluster_name="mycluster"
wsrep_cluster_address="gcomm://172.17.226.181,172.17.252.31"

wsrep_node_name="mynode132"#是否加引号? 
wsrep_node_address="172.17.252.31"#主节点IP

(4)启动集群
在所有服务器上执行一下命令来停止Mysql:

sudo systemctl stop mysql

执行以下的命令来显示数据库现在的状态:

sudo systemctl status mysql

显示状态为inactive,就说明数据库关闭成功。
1.打开主节点

sudo /etc/init.d/mysql start --wsrep-new-cluster 

此命令运行结束之后,主节点注册成为集群的一部分,可以使用一下命令来查看:

mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"

输出如下所示:


+--------------------+-------+ 
| Variable_name | Value | 
+--------------------+-------+ 
| wsrep_cluster_size | 1 |
 +--------------------+-------+ 

2.打开第二个节点
启动Mysql:

sudo systemctl start mysql

再执行以下命令:

mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"

随着每个节点上线,簇的大小会发生变化:

+--------------------+-------+
 | Variable_name | Value | 
+--------------------+-------+ 
| wsrep_cluster_size | 2 | 
+--------------------+-------+ 

(5)测试复制
先在第一个节点创建一个表,并写入数据

mysql -u root -p -e 'CREATE DATABASE playground; 

CREATE TABLE playground.equipment ( id INT NOT NULL AUTO_INCREMENT, type VARCHAR(50), quant INT, color VARCHAR(25), PRIMARY KEY(id)); 
INSERT INTO playground.equipment (type, quant, color) VALUES ("slide", 2, "blue");'

在第二个节点上可以读取上述写入的值:

mysql -u root -p -e 'SELECT * FROM playground.equipment;' 

如果复制正常的话,会有如下的结果:

+----+-------+-------+-------+

| id | type | quant | color |

+----+-------+-------+-------+

| 1 | slide | 2 | blue |

+----+-------+-------+-------+

至此,一个小小的集群就搭建完毕了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值