MySQL集群是一个共享的、分布式节点架构的存储方案,其目的是提供容错性和高性能;“NDB”是一种“内存中”的存储引擎,也是事务型存储引擎,具备ACID属性。

管理节点:负责管理MySQL Cluster内的其他节点,如提供配置数据、启动并停止节点、运行备份等;由于这类节点负责管理其他节点的配置,应在启动其他节点之前首先启动这类节点。MGM节点是用命令“ndb_mgmd”启动的。

数据节点:用于保存Cluster的数据,数据节点的数目与副本的数目相关,是片段的倍数,数据节点是用命令“ndb”启动的。

SQL节点:用来访问Cluster数据的节点,也就是Mysql服务,可以使用service mysqld start启动的。

架构图

数据库平台 架构图 简单 数据库平台搭建_数据库平台 架构图 简单


1、MySQL集群版安装环境配置

MySQL集群版安装过程的所有操作步骤都需要使用root用户进行(此项步骤需要在集群中所有主机上进行操作)

#mkdir setups

数据库平台 架构图 简单 数据库平台搭建_数据库平台 架构图 简单_02


首先,把相关软件包上传到root家目录新建的“setups”目录下

#rmp -qa | grep mysql #匹配mysql关键字查询包

#yum list installed | grep mysql #列出本机yum方式安装的MySQL软件

数据库平台 架构图 简单 数据库平台搭建_MySQL_03

数据库平台 架构图 简单 数据库平台搭建_MySQL_04


#rpm -qa | grep mariadb #检查是否已经安装了MariaDB软件,该软件会与MySQL软件的数据库内核产生冲突,在安装MySQL数据库之前需要将其删除

#rpm -e --nodeps 软件包名 #将已安装的MariaDB软件删除,rpm源码安装删除方法

数据库平台 架构图 简单 数据库平台搭建_mysql_05


#rpm -qa | grep libiao #检查本机是否yum方式安装了libiao软件,MySQL数据库的安装需要依赖与该软件,若软件没有安装,使用“yum list installed | grep libiao”命令进行安装此软件

数据库平台 架构图 简单 数据库平台搭建_数据库_06


检查mysql用户组、用户是否存在,若不存在就创建;创建mysql用户并加入到mysql用户组,选项“-r”表示该用户是内部用户,

不允许外部登录

数据库平台 架构图 简单 数据库平台搭建_数据库平台 架构图 简单_07


#sestatus -v #查看当前系统中SELinux服务的运行状态,需要进行永久关闭

数据库平台 架构图 简单 数据库平台搭建_mysql_08


#vi /etc/selinux/config

找到配置项“SELINUX”所在行,将其改为以下内容:SELINUX=disabled,然后重启虚拟机

数据库平台 架构图 简单 数据库平台搭建_mysql_09


2、MyS集群版基本安装配置

以下步骤需要在集群中所有主机上进行操作

将MySQL Cluster软件包解压到创建的“mysql”目录下

数据库平台 架构图 简单 数据库平台搭建_MySQL_10


#In -s /mysql/mysql-cluster-gpl-7.5.7-linux-glibc2.12-x86_64 mysql

#在“/usr/local”目录下创建一个名为“mysql”的链接指向MySQL Cluster所在的目录,MySQL源路径以MySQL Cluster软件包实际解压解包的路径为准

#mkdir data #创建存放MySQL数据库数据的目录

#chmod 770 data #更改该数据目录的权限设置

#chown -R mysql . #chgrp -R mysql . #更改当前“mysql”目录的所属用户和所属组

数据库平台 架构图 简单 数据库平台搭建_数据库平台 架构图 简单_11


#vi /etc/profile #配置MySQL相关的环境变量,修改系统的配置文件

在文件末尾添加以下内容,要确保输入正确,否则可能会导致所有命令无法使用,书写与定义顺序要一致

数据库平台 架构图 简单 数据库平台搭建_数据库平台 架构图 简单_12


数据库平台 架构图 简单 数据库平台搭建_MySQL_13


#source /etc/profile #使配置的环境变量立即生效

#echo $MYSQL_CLUSTER_HOME #echo $PATH

#查看新添加和修改的环境变量是否设置成功,以及环境变量的值是否正确

数据库平台 架构图 简单 数据库平台搭建_数据库平台 架构图 简单_14


3、配置管理节点Cluster-01

以下步骤需要在集群中所有管理节点主机上进行操作

#cd /usr/local/mysql #进入MySQL Cluster软件所在的目录

#mkdir mysql-cluster #创建存放MySQL Cluster数据的目录

创建MySQL Cluster数据的目录后更改“mysql-cluster”目录的所属用户和所属组

数据库平台 架构图 简单 数据库平台搭建_数据库平台 架构图 简单_15


#mkdir etc #创建用于存放MySQL Cluster管理节点配置文件的目录

#touch config.ini #创建MySQL Cluster管理节点的配置文件

#vi config.ini #对配置文件进行修改

数据库平台 架构图 简单 数据库平台搭建_MySQL_16


#chown -R mysql. #chgrp -R mysql . #更改当前“etc”目录的所属用户和所属组

#ndb_mgmd -f /usr/local/mysql/etc/config.ini --initial

#启动MySQL Cluster的管理节点,首次启动或配置后启动需要添加参数“- -initial”,

正常启动时不需要添加参数“- -initial”

数据库平台 架构图 简单 数据库平台搭建_MySQL_17


#ps -ef | grep ndb_mgmd #查看系统进程信息,若存在信息中包含“ndb_mgmd”关键字的进程则表示MySQL Cluster的管理节点启动成功

数据库平台 架构图 简单 数据库平台搭建_MySQL_18


#ndb_mgm #进入MySQL Cluster管理节点的控制台

#show #在控制台使用命令“show”可以查看节点状况

数据库平台 架构图 简单 数据库平台搭建_MySQL_19


4、配置数据服务节点Cluster-02、Cluster-03

以下步骤需要在集群中所有数据服务节点主机上进行操作

#touch my.cnf #创建MySQL Cluster数据服务节点的配置文件

#vi my.cnf #对配置文件进行修改,运行NDB存储引擎,指定管理节点地址

数据库平台 架构图 简单 数据库平台搭建_mysql_20


#启动数据服务节点节点,首次启动或配置后启动需要添加参数“- -initial”,正常启动时不需要添加参数“- -initial”

#ps -ef | grep ndb_ndbd #查看系统进程信息,若存在信息中包含“ndb”关键字的进程则表示MySQL Cluster的数据服务节点启动成功

数据库平台 架构图 简单 数据库平台搭建_数据库平台 架构图 简单_21


#ndb_mgm #进入MySQL Cluster管理节点的控制台

#show #在控制台使用命令“show”可以查看节点状况,若有相应数据服务节点的链接信息,则表示数据服务节点启动并连接成功

数据库平台 架构图 简单 数据库平台搭建_mysql_22


5、配置SQL服务节点Cluster-04、Cluster-05

以下步骤需要在集群中所有SQL服务节点主机上进行操作

#touch my.cnf #创建MySQL Cluster数据服务节点的配置文件

#vi my.cnf #对配置文件进行修改,运行NDB存储引擎,指定管理节点地址

数据库平台 架构图 简单 数据库平台搭建_MySQL_23


#mysqld - -initial - -user=mysql - -basedir=/usr/local/mysql - -datadir=/usr/local/

Mysql/data #对MySQL数据库的安装进行初始化,执行该命令后会有一些提示信息,特别注意最后一行的“[NOTE]”相关信息,信息内容如下:[NOTE] A temporary is generatedfor root@localhost:XXX,二“XXX”是初始密码,在首次扥估数据库时使用。

数据库平台 架构图 简单 数据库平台搭建_数据库平台 架构图 简单_24


数据库平台 架构图 简单 数据库平台搭建_MySQL_25


#cp /usr/local/mysql/support-fles/mysql.server /etc/ini.d/mysql

#将MySQL加入到系统的可控制启动服务目录内,并将服务名命名为“mysql”

#service mysql start #启动SQL服务节点

#ps -ef | grep #查看系统进程信息,若存在信息中包含“mysql”关键字的进程则表示MySQL Cluster的SQL服务节点启动成功

数据库平台 架构图 简单 数据库平台搭建_数据库_26


#ndb_mgm #进入MySQL Cluster管理节点的控制台

#show #在控制台使用命令“show”可以查看节点状况,若有相应数据服务节点的链接信息,则表示数据服务节点启动并连接成功

数据库平台 架构图 简单 数据库平台搭建_mysql_27


#mysql -u root -p #登录MySQL数据库,会提示输入密码,改密码为之前进行安装初始化时所显示的初始密码,正确输入密码成功登录MySQL数据库之后会进入MySQL的控制台

SET PASSWORD=PASSWORD(‘123456’); #在MySQL控制台使用此命令,重新设置数据库的“root”用户的登录密码,其中‘123456’部分为自定义密码

数据库平台 架构图 简单 数据库平台搭建_mysql_28


USE mysql; #在MySQL控制台使用命令“SE mysql”;切换到“mysql”数据库

UPDATE user SET host=’%’ WHERE user=’root’;

#在MySQL控制台使用此命令,修改数据库的root用户所接收请求来源范围,允许远程登录

select host from user where user=’root’; #查看数据库的host信息

FLUSH PRIVLEGES; #在MySQL控制台使用此命令刷新数据库权限信息使新配置的权限生效

exit #在MySQL控制台使用命令“exit”可以退出MySQL控制台返回到系统命令行界面

数据库平台 架构图 简单 数据库平台搭建_mysql_29


6、MySQL集群版验证

#mysql -u root -p #在任意一台SQL服务节点主机上使用此命令登录到MySQL数据库,会提示输入密码,输入密码成功登录MySQL数据库之后进入MySQL的控制台,如在Cluster-04

CREATE DATBASE test; #在MySQL控制台使用此命令创建数据库“test”

数据库平台 架构图 简单 数据库平台搭建_mysql_30


#mysql -u root -p #在任意一台SQL服务节点主机上使用此命令登录到MySQL数据库,会提示输入密码,输入密码成功登录MySQL数据库之后进入MySQL的控制台,如在Cluster-05

SHOW DATABASE; #在MySQL控制台使用此命令显示数据库列表,若存在名为“test”的数据库,则表示集群同步数据成功

数据库平台 架构图 简单 数据库平台搭建_数据库平台 架构图 简单_31


数据库平台 架构图 简单 数据库平台搭建_数据库平台 架构图 简单_32


在任意一台集群主机上执行:ndb_mgm -e show,如在Cluster-03主机上进行

数据库平台 架构图 简单 数据库平台搭建_MySQL_33


启动顺序:管理节点->数据节点->SQL节点

数据库平台 架构图 简单 数据库平台搭建_数据库_34


命令分别是:ndb_mgmd -f /usr/local/mysql/etc/config.ini、ndbd、service mysql start

关闭顺序:SQL节点->数据节点->管理节点

命令分别是:service mysql stop、ndb_mgm -e shutdown

数据库平台 架构图 简单 数据库平台搭建_数据库平台 架构图 简单_35


数据库平台 架构图 简单 数据库平台搭建_MySQL_36


7、MySQL集群测试

1、测试一

在一个SQL节点上进行相关数据库的创建,然后到另外一个SQL节点上查看数据是否同步

在SQL节点即Cluster-04节点上执行:

数据库平台 架构图 简单 数据库平台搭建_MySQL_37


然后在SQL节点即Cluster-05节点上查看数据是否同步过来

数据库平台 架构图 简单 数据库平台搭建_MySQL_38


2、测试二

关闭一个数据节点,在另一个节点写输入,开启关闭的节点,看看数据是否同步过来

首先把数据节点1重启,然后在节点2上添加数据

在SQL节点2(Cluster-05)上操作如下

数据库平台 架构图 简单 数据库平台搭建_数据库_39


数据节点1(Cluster-04)上查看数据是否同步过去

数据库平台 架构图 简单 数据库平台搭建_mysql_40