当系统的规模达到一定程度后,数据库在系统中慢慢成为一个瓶颈,因此需要对数据库进行扩展。数据库集群时一种解决数据库负荷的有效手段,本篇主要是描述了数据库集群如何搭建和配置的过程。
一、mysql集群的规划
mysql集群由管理节点、数据节点、mysql节点组成。一般情况下数据节点和mysql可以放在统一服务器,管理节点在另外一个服务器。本例中采用三台服务器,一台作为管理节点,另外两台同时作为数据和mysql节点,可以用下图表示:
要搭建mysql的集群,首先就需要检查原系统是否有安装mysql,将原系统的mysql卸载后再安装mysql集群版,本文中的各个节点的系统都为centos 6.5。
二、mysql 的卸载
卸载的主要步骤如下:
1、收集系统的mysql信息
2、关闭mysql相关服务
3、卸载mysql软件
4、删除mysql残留的文件
2.1收集系统的mysql信息
[root@mysql-2 ~]# rpm? -qa | grep? -i? mysql
MySQL-client-5.6.33-1.linux_glibc2.5.x86_64
php-mysqlnd-5.6.27-1.el6.remi.x86_64
MySQL-shared-5.6.33-1.linux_glibc2.5.x86_64
MySQL-devel-5.6.33-1.linux_glibc2.5.x86_64
MySQL-server-5.6.33-1.linux_glibc2.5.x86_64
MySQL-shared-compat-5.6.33-1.linux_glibc2.5.x86_64
[root@mysql-2 ~]#
[root@mysql-2 ~]# whereis? mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/include/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
[root@mysql-2 ~]#
[root@mysql-2 ~]#? chkconfig --list | grep -i mysql
mysql?????????? 0:off?? 1:off?? 2:on??? 3:on??? 4:on??? 5:on??? 6:off
[root@mysql-2 ~]#
[root@mysql-2 ~]#
2.2关闭MySQL服务
[root@mysql-2 ~]# service mysql stop
Shutting down MySQL…[ OK ]
2.3卸载mysql
- rpm –e --nodeps MySQL-devel-5.6.23-1.linux_glibc2.5
2.4删除文件
首先查找系统的mysql文件和目录,然后删除这些文件和目录
find / -name mysql
三、安装管理节点
管理节点使用的服务器为192.168.136.215.
3.1、下载介质
安装文件的获取有两个途径,一个是从mysql网站上获取,https://dev.mysql.com/downloads/cluster/7.5.html#downloads
如下图所示:
第二个途径是从镜像获取:
http://mirrors.sohu.com/mysql/MySQL-Cluster-7.5/
从这个url中找到符合自己操作系统的集群安装文件mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64.tar.gz,下载后,拷贝安装文件到215服务器上,目录可以自己指定,我使用的目录是 /home/mysql-cluster
解压后,在本地有一个目录 mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64,进入目录后,结构如下图所示:
3.2创建用户组和用户
使用如下指令创建用户和用户组:
groupadd? mysql
useradd? mysql? -g? mysql
3.3部署安装文件
使用如下命令将解压后的目录重命名:
mv mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64 /usr/local/mysql-cluster
进入到/uar/local/mysql-cluster目录,将管理程序拷贝到 bin目录:
cp bin/ndb_mgm* /usr/local/bin
修改权限: chmod +x ndb_mgm*
3.4初始化管理节点:
初始化管理节点,需执行如下命令: /usr/local/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
在/usr/local/bin目录下执行 ndb_mgm命令后,在命令行窗口执行 show
至此管理节点安装完成。
四、安装数据和mysql节点
安装数据和mysql节点,使用的软件和管理节点一致,并且用户和用户组也和前面一致。数据和mysql节点使用的服务器分别为 192.168.136.216和192.168.136.217
4.1、创建用户组和用户
groupadd? mysql
useradd? mysql? -g? mysql
建立文件夹并赋予权限
mkdir? /var/lib/mysql-cluster
chown? root:mysql? /var/lib/mysql-cluster
4.2、部署软件
将上一章节的软件,传到 /usr/local下,可以使用scp命令:
scp /home/mysql-cluster/mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64.tar.gz root@192.168.136.216:/usr/local
scp /home/mysql-cluster/mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64.tar.gz root@192.168.136.217:/usr/local
进入 /usr/local目录 将上传到216和217主机的压缩包解压缩:
tar? -vxf?? mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64.tar.gz
解压缩后会产生mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64目录,将其重命名:
mv? mysql-cluster-gpl-7.5.12-linux-glibc2.12-x86_64? mysql
4.3、初始化mysql
在/usr/local/mysql 目录下,执行 ./bin/mysqld --initialize 命令,会进行mysql的初始化操作
初始化命令的最后一行是密码,需要记住这个密码
4.4、修改目录权限
使用如下指令修改目录权限:
chown -R root:mysql? .
4.5、拷贝mysql启动命令和加入到系统服务
[root@mysql-2 mysql]# cp? support-files/mysql.server? /etc/rc.d/init.d/
[root@mysql-2 mysql]#
[root@mysql-2 mysql]# chmod +x? /etc/rc.d/init.d/mysql.server
[root@mysql-2 mysql]#
[root@mysql-2 mysql]# chkconfig? --add? mysql.server
4.6、配置数据节点:
修改mysql的配置文件:vim /etc/my.cnf
[mysqld]
ndbcluster
ndb-connectstring=192.168.136.215
[mysql_cluster]
ndb-connectstring=192.168.136.215
4.7、初始化数据节点:
[root@mysql-2 mysql]# /usr/local/mysql/bin/ndbd –initial
检查进程
4.8启动mysql
/etc/init.d/mysql.server start
注意 data目录的用户和用户组都是mysql
否则启动会报告如下异常
启动完成后,切换到 215上查看,可以看到全部节点都启动
4.9添加系统环境变量
把mysql/bin目录添加到环境变量
echo export PATH=$PATH:/usr/local/mysql/bin >> /etc/profile && source /etc/profile
四、验证
4.1、使用navicat工具创建mysql连接
4.2、单节点上创建数据库
在其中一个节点(mysql节点上)创建数据库educloud
刷新一下navicat工具中的数据库连接
可以看到集群里数据库的信息都更新了
4.3、创建表
在任意一个节点上的数据库educloud里面创建表:
注意建表的引擎需要用ENGINE=NDBCLUSTER;
查询另外一个节点可以看到也同样生成了表
五、启动和关闭
启动mysql集群。启动顺序为:管理节点→数据节点→SQL节点。
5.1、管理节点启停:
启动命令:
/usr/local/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
关闭命令:
/usr/local/bin/ndb_mgm -e shutdown
注:本例中管理节点为192.168.136.215
5.2、数据和mysql节点上启动
启动ndbd和MySQL(关闭命令:/etc/init.d/mysql.server stop)
数据节点启动:/usr/local/mysql/bin/ndbd
Mysql启动:/etc/init.d/mysql.server start
Mysql启动关闭: /etc/init.d/mysql.server stop
注:本例中管理节点为192.168.136.216, 192.168.136.217
5.3、管理节点查看状态
执行指令:/usr/local/bin/ndb_mgm 后进入交互界面:
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)]???? 2 node(s)
id=3??? @192.168.136.216? (mysql-5.7.24 ndb-7.5.12, Nodegroup: 0, *)
id=5??? @192.168.136.217? (mysql-5.7.24 ndb-7.5.12, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1??? @192.168.136.215? (mysql-5.7.24 ndb-7.5.12)
[mysqld(API)]?? 2 node(s)
id=6??? @192.168.136.216? (mysql-5.7.24 ndb-7.5.12)
id=7??? @192.168.136.217? (mysql-5.7.24 ndb-7.5.12)