今天继续给大家介绍MySQL相关知识,本文主要内容是MySQL集群Cluster实战。
阅读本文,您需要有一定的MySQL Cluster集群相关知识,如果您对此还存在困惑,欢迎查阅我博客内的其他文章,相信您一定会有所收获,推荐阅读:
MySQL集群Cluster详解(一)——基本原理
一、实战环境
本次实验,我们使用5台Vmware虚拟机来进行,系统架构如下图所示:
二、软件安装
为了实现上述架构,我们必须在系统上安装MySQL CLuster相关软件,软件分为通用软件和管理、数据节点的专用软件。
(一)通用软件安装
通用软件是指在所有的设备上都需要安装的软件,如果是采用YUM的方式来进行安装,则安装命令如下:
首先是安装依赖包:
yum install perl perl-Class-Method-Maker perl-DBI libaio numactl
这些依赖包,简介如下:
perl是一个功能丰富的计算机程序语言,易于使用、高效、完整,多用于系统管理、web开发,网络编程等。
perl-Class-Method-Maker为perl的Method Maker包,提供了perl的Method Maker类,解决了为了执行标准任务的对象而必须持续写入防蚊器的方法。
perl-DBI是perl访问数据库所使用的一个依赖包。
libaio主要实现Linux系统的同步异步机制以及时间阻塞等。
numactl是一个Linux系统的优化包,可以优化内存的使用。
其次,我们还要安装mysql-cluster-community-server,安装命令如下:
yum install -y mysql-cluster-community-server
(二)管理和数据节点软件安装
在5台设备上安装上述软件后,我们还需要在管理和数据节点上安装一些专用软件。在管理节点上,我们需要安装mysql-cluster-community-management-server,YUM安装命令如下:
yum install -y mysql-cluster-community-management-server
而在数据节点上,我们需要安装mysql-cluster-community-data-node,YUM安装命令如下:
yum install -y mysql-cluster-community-data-node
三、 管理节点配置
在安装完所有软件后,我们就可以进行架构配置了,首先,我们需要进行管理节点配置。在管理节点上,我们新创建一个配置文件,文件位置和名称随意,但是该文件必须在启动时进行指定。文件内容如下:
[ndbd default]
NoOfReplicas=2
DataMemory=200M
IndexMemory=100M
[ndb_mgmd]
NodeId=1
datadir=/var/lib/mysql
HostName=192.168.136.11
[ndbd]
HostName=192.168.136.12
DataDir=/var/lib/mysql
NodeId=2
[ndbd]
HostName=192.168.136.13
DataDir=/var/lib/mysql
NodeId=3
[mysqld]
HostName=192.168.136.14
NodeId=4
[mysqld]
HostName=192.168.136.15
NodeId=5
在上述配置文件中,一共有6个模块,[ndbd default]模块配置了整个架构的信息,[ndb_mgmd]模块配置了管理节点的信息,[ndbd]模块配置了数据节点的相关信息,[mysqld]模块配置了SQL节点相关信息。在[ndbd default]模块中,NoOfReplicas=2表示有两个数据节点,DataMemory表示数据存储可用的内存大小,IndexMemory表示索引存储可用的内存大小。在其他模块中,NodeId为每个设备的编号,可以任意但必须唯一,HostName为设备的IP地址,DataDir只有数据节点才有,表示数据的存储路径。配置完成后的文件如下所示:
四、数据节点配置
在数据节点上,我们需要修改/etc/my.cnf配置文件,打开该文件后,在[mysqld]模块下,添加如下命令:
ndb_cluster
ndb_connectstring=192.168.136.11
然后新建[mysql_cluster]模块,在该模块下,添加如下命令:
ndb_connectstring=192.168.136.11
上述命令分别表示开启ndb引擎和指定管理节点的IP。
修改完成后的配置文件如下所示:
五、SQL节点配置
SQL节点的配置,与数据节点的配置非常相似,也是需要在/etc/mu.cnf中添加与数据节点完全相同的内容。但是,由于SQL节点不存储数据,因此我们还需要删除[mysqld]模块下的datadir那一行。这样,SQL节点修改完成后内容如下:
六、系统启动与关闭
无论是系统启动还是关闭,都必须遵循先管理、再数据,最后SQL的原则。为了保证架构开启正常,我们需要关闭各个设备上的防火墙,相关命令如下:
systemctl stop firewalld
iptables -F
setenforce 0
当系统开启时,管理节点的开启命令是:
ndb_mgmd --ndb_nodeid=1 --initial -f /usr/mysql-cluster/config.ini
其中/usr/mysql-cluster/config.ini文件是之前配置的管理节点的配置文件。启动后,系统应该监听1186端口,如下所示:
数据节点开启命令为:
ndbd --initial
执行结果为:
SQL节点的开启命令与启动数据库的命令相同,为:
systemctl start mysqld
当系统关闭时,我们需要在管理节点上,执行命令:
ndb_mgm,进入到MySQL Cluster管理页面,然后执行命令shutdown即可,这样,管理节点就会关闭,同时,数据节点也会收到管理节点的关闭的消息,从而也自行关闭。剩下的SQL节点需要我们手动关闭,关闭命令为:
systemctl stop firewalld
七、结果验证
最后,让我们来验证一下前期架构配置是否成功。
首先,让我们在管理节点上查看一下系统的状态,在管理节点上,执行命令ndb_mgm,进入MySQL Cluster查看页面,然后执行命令show,查看当前系统的状态,结果如下所示:
之后,我们尝试在一个SQL节点上创建数据库,并写入内容,再另一个SQL节点上查看内容,注意,在创建数据表时,必须指定数据表的引擎为NDB,相关内容如下所示:
在SQL节点1上:
在SQL节点2上:
从上图中可以看出,从SQL节点1上的相关配置在SQL节点2上也能够查询到,因此,我们的架构配置成功!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200