Mysql-Cluster-7.5搭建数据库集群

Mysql-Cluster是一个集群工具,并不能实现负载均衡,这一点和oracle的rac是有所区别的。不过mysql-cluster可以实现多台数据库之间的同步,虽然主从复制也能实现数据同步,主主复制也能实现2台数据库之间的同时读写要求,但是对于访问量比较大的系统通过配置cluster+负载均衡的方式就比较合适了。

今天来找了份文档测试安装一下mysql-cluster:

环境说明:

mysql版本:5.7.21

mysql-cluster版本:7.5.6 

整个框架应该包括:管理节点、数据节点以及mysql节点,分别的作用:

管理节点,mysql-cluster管理节点负责管理、配置、监控整个集群。

数据节点,使用内存存放数据,保存进数据节点的数据都会自动复制并存储到其他数据节点。

mysql节点,也叫数据库节点,和我们平时使用的mysql相同,作为数据库使用。被数据节点访问。

各节点IPv如下:

管理节点:172.17.61.131

数据节点以及mysql节点:172.17.61.132,172.17.61.133


1.安装前的准备:

下载mysql-cluster工具:

http://mirrors.sohu.com/mysql/MySQL-Cluster-7.5/

我下载的是mysql-cluster-gpl-7.5.6-linux-glibc2.5-x86_64.tar.gz

由于这些机器上之前都安装过Mysql,所以需要先stop掉mysql的服务,将相关mysql的数据文件以及原文件都删除干净,确保3306端口没有被占用,三台机器IP可以互通。


2.安装配置管理节点

将下载后的包上传至服务器/usr/local下

解压

# tar xvf mysql-cluster-gpl-7.5.6-linux-glibc2.5-x86_64.tar.gz

将需要的文件取出

# cd mysql-cluster-gpl-7.5.6-linux-glibc2.5-x86_64

# cp bin/ndb_mgm* /usr/local/bin

# cd /usr/local/bin

# chmod +x ndb_mgm*

新建配置文件并且初始化管理节点

# mkdir /var/lib/mysql-cluster

# ln -s /usr/local/mysql /home/mysql-cluster-gpl-7.5.6-linux-glibc2.5-x86_64

# vi /var/lib/mysql-cluster/config.ini

[ndbd default]
NoOfReplicas=2
DataMemory=80M #此参数不能太大,否则会导致由于内存空间不足,节点会强制关闭
IndexMemory=18M

[ndb_mgmd]
HostName=172.17.61.131
DataDir=/var/lib/mysql-cluster

[ndbd]
HostName=172.17.61.132
DataDir=/var/lib/mysql-cluster

[ndbd]
HostName=172.17.61.133
DataDir=/var/lib/mysql-cluster

[mysqld]
[mysqld]

使用配置文件初始化管理节点

# /usr/local/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial

出现MySQL Cluster Management Server mysql-5.7.21 ndb-7.5.6

然后就能使用ndbd进去管理了(如果ndbd命令不行,就使用在/usr/local/bin目录下使用ndb_mgm命令)

# ndbd

ndb_mgm>show(使用show命令查看管理情况,当数据节点配置完毕之后,我们再用这个命令查看和管理)

到此为止管理节点配置完毕,接下去配置数据和sql节点


3.安装和配置数据和mysql节点

下面的操作需要在所有节点进行

新增用户组mysql和用户msyql

# groupadd mysql

# useradd -g mysql -s /bin/false mysql

新建文件夹并赋予权限

# mkdir /var/lib/mysql-cluster

# mkdir /u01/mysql

# chown root:mysql /var/lib/mysql-cluster

#chown mysql:mysql /u01/mysql

将下载后的包上传至服务器/usr/local下

解压

# tar xvf mysql-cluster-gpl-7.5.6-linux-glibc2.5-x86_64.tar.gz

创建链接方便访问

# ln -s /usr/local/mysql-cluster-gpl-7.5.6-linux-glibc2.5-x86_64 /usr/local/mysql

初始化数据库

/usr/loca/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/u01/mysql  

/usr/loca/mysql/bin/mysql_ssl_rsa_setup --datadir=/u01/mysql  

配置自动启动

# cp support-files/mysql.server /etc/rc.d/init.d/mysql

修改etc/rc.d/init.d/mysql的datadir以及basedir

# chmod +x /etc/rc.d/init.d/mysql

# chkconfig --add mysql

配置数据节点

# vi /etc/my.cnf

加上下面部分:

 
 

[mysqld]

ndbcluster

ndb-connectstring=172.17.61.131 [mysql_cluster] ndb-connectstring=172.17.61.131

启动数据库:

service mysql start

初次登入需要修改密码,这个和普通安装mysql一样

启动ndbd

/etc/init.d/ndbd --initial

如果上述不行使用绝对路径的这个:# /usr/local/mysql/bin/ndbd --initial如果出现下述现象就成功了

2018-05-09 14:14:24 [ndbd] INFO     -- Angel connected to '172.17.61.131:1186'
2018-05-09 14:14:24 [ndbd] INFO     -- Angel allocated nodeid: 2


4.最后当所有的节点配置完成,回到管理节点,使用上述说过的show查看,如下的类似显示,证明已经连接完成
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=2    @172.17.61.132  (mysql-5.7.18 ndb-7.5.6, Nodegroup: 0, *)
id=3    @172.17.61.133  (mysql-5.7.18 ndb-7.5.6, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @172.17.61.131  (mysql-5.7.18 ndb-7.5.6)

[mysqld(API)]   2 node(s)
id=4    @172.17.61.132  (mysql-5.7.18 ndb-7.5.6)
id=5    @172.17.61.133  (mysql-5.7.18 ndb-7.5.6)

5.测试是否能够同步数据 :

创建表时必须使用ndbcluster引擎,否则无法同步数据

node1:

mysql> use l5m
Database changed
mysql> create table student(age int) engine=ndbcluster;
Query OK, 0 rows affected (0.51 sec)

mysql> insert into student values(11);
Query OK, 1 row affected (0.07 sec)

mysql> commit;
Query OK, 0 rows affected (0.00 sec)

node2:

mysql>  select * from student;
+------+
| age  |
+------+
|   11 |
+------+
1 row in set (0.00 sec)

6.启动和关闭顺序

启动mysql集群。启动顺序为:管理节点→数据节点→SQL节点。

启动的命令上面都有,删去--initial即可

关闭时只需要关闭管理节点,后面的数据节点会同时被关闭,mysql就和原来一样即可

管理节点关闭命令:ndb_mgm -e shutdown

(执行完成之后管理节点会关闭,数据节点也会关闭,但SQL节点不会,也就是数据库服务需要手动到每一台服务器上停止以保证数据同步)


参考:

http://www.cnblogs.com/linkstar/p/6510713.html

猜你喜欢

转载自blog.csdn.net/jolly10/article/details/80253123