mysql cluster 7.5.4_简单使用Mysql-Cluster-7.5搭建数据库集群

阅读目录

|前言

当你的业务到达一定的当量,肯定需要一定数量的数据库来负载均衡你的数据库请求,我在之前的博客中已经说明了,如何实现负载均衡,但是还有一个问题就是数据同步,因为负载均衡的前提就是,各个服务器的数据库是数据同步的。在业务量不大的时候,我们会使用主从复制的方法实现服务器数据同步,一主多从或者是双主等,但是虽然进行了读写分离,但是对于读的方法限制还是比较大,所以解决数据同步的问题就是数据库集群的意义。我这里使用mysql官网提供的mysql-cluster实现集群。(到文章发布前的最新版本的安装教程,把网上踩的坑都踩过了一遍;)

|mysql cluster中的几个概念解释

为了简单,我后面简称mysql-cluster为mc。

1、mc已经包含了mysql,我下载的最新的mc7.5,官方说明包含的是mysql版本是5.7。所以不需要使用别的msyql的安装包安装数据库。同时注意mysql5.7的版本在安装的命令和配置上面和之前的版本有很大的不同,所以网上有很多mc7.5之前的版本,所包含的mysql版本不同,所以安装方法不同。

2、管理节点,mc管理节点负责管理、配置、监控整个集群。

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

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

|架构图及说明

1b04841992ec0663c0d60d2b49a1296d.png

我实验中的配置就是如图所示,因为虚拟机占用内存较大,只使用了3台服务器,在实际情况中最好将数据节点和mysql节点分开。在实际中负载均衡服务还需要做备份,因为万一负载均衡服务器宕机将会导致所有数据节点都无法访问,所以需要对负载均衡服务器备份,有条件的话,分开管理节点和负载均衡器。实验只实现整个数据库集群,负载均衡请参考之前的博客配置即可。

|下载mysql cluster

https://cdn.mysql.com//Downloads/MySQL-Cluster-7.5/mysql-cluster-gpl-7.5.6-linux-glibc2.5-x86_64.tar.gz

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

注意看清是64位版本的,别下载错了

|安装mysql cluster之前

安装之前,如果之前安装过mysql,那么需要删除相应的各种mysql文件,删除之前请停止mysql服务。并且不要忘记删除my.cnf这些配置文件。确保删除干净。不然可能会和后面的安装有冲突。如果是实验,关闭防火墙,实际中,防火墙打开对应端口。保证服务器之前能互相访问,能ping通。保证固定的ip地址。保证没有别的程序占用需要使用的端口。如3306等。这些都确认完毕后再进行安装。需要linux基础的命令熟练,需要熟练安装mysql基本版本等操作,因为后序的一些操作我会简单描述,不做过多的说明了。

|安装配置管理节点

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

解压

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

将需要的文件取出

# cd mysql-cluster-gpl-7.5.4-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

# mkdir /usr/local/mysql

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

(输入“i” 是编辑,按下键盘左上角“Esc”退出编辑,输入 “:wq”为保存。)

下面是配置文件,根据我修改的修改即可,别的均可不动。

[ndbd default]

NoOfReplicas=2

DataMemory=40960M

IndexMemory=512M

[ndb_mgmd]

nodeid=1

HostName=10.0.125.87

DataDir=/var/lib/mysql-cluster

[ndb_mgmd]

nodeid=2

HostName=10.0.125.84

DataDir=/var/lib/mysql-cluster

[ndbd]

nodeid=21

HostName=10.0.125.86

DataDir=/var/lib/mysql-cluster

[ndbd]

nodeid=22

HostName=10.0.125.85

DataDir=/var/lib/mysql-cluster

[mysqld]

nodeid=31

HostName=10.0.125.86

[mysqld]

nodeid=32

HostName=10.0.125.85

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

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

出现MySQL Cluster Management Server mysql-5.7.16 ndb-7.5.4

然后就能使用ndbd进去管理了

# ndbd

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

41153a029ea9675803312537447905d9.png

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

|安装配置数据和mysql节点

以下的所有操作需要在所有的集群节点都要进行相同的操作

新增用户组mysql和用户msyql

# groupadd mysql

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

新建文件夹并赋予权限

# mkdir /var/lib/mysql-cluster

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

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

解压

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

重命名

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

初始化数据库(这里要注意,如果你安装的版本和我的不同,数据库初始化的命令使不同的,很多之前的版本会使用:scripts/mysql_install_db --user=mysql来初始化,这个已经被mysql在新的版本中废弃了,所以需要使用下面的命令安装,如果你需要安装别的版本请参考mysql官网的对应版本的安装命令。)

# cd /usr/local/mysql/bin/

# ./mysqld --initialize

接着会生成临时密码:我这生成的是 “o,Z2el6stDh”,这个密码要记住,待会要用到。

54d95b2b6d19ad0f781eb1ee77f28960.png

修改权限

# cd ..

先返回上一级

# chown -R root .

# chown -R mysql data

# chgrp -R mysql .

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

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

# chkconfig --add mysql.server

配置数据节点

# vi /etc/my.cnf

(输入“i” 是编辑,按下键盘左上角“Esc”退出编辑,输入 “:wq”为保存。)

[mysqld]

ndbcluster

ndb-connectstring=10.0.125.87

[mysql_cluster]

ndb-connectstring=10.0.125.87

其中的IP为管理节点的IP

启动集群节点上面的服务启动mysql(成功会有success)

# /etc/init.d/mysql.server start

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

2017-03-06 14:04:07 [ndbd] INFO     -- Angel connected to '10.0.125.86:1186'

2017-03-06 14:04:07 [ndbd] INFO     -- Angel allocated nodeid: 21

最后当所有的节点配置完成,回到管理节点,使用上述说过的show查看,如下的类似显示,证明已经连接完成

#cd /usr/local/bin/

#ndb_mgm

ndb_mgm> show

Cluster Configuration

---------------------

[ndbd(NDB)]    2 node(s)

id=21   @10.0.125.86  (mysql-5.7.18 ndb-7.5.6, starting, Nodegroup: 0,*)

id=22   @10.0.125.85  (mysql-5.7.18 ndb-7.5.6, starting, Nodegroup: 0)

[ndb_mgmd(MGM)]    1 node(s)

id=1    @10.0.125.87  (mysql-5.7.18 ndb-7.5.6)

[mysqld(API)]    2 node(s)

id=31 @10.0.125.86 (mysql-5.7.18 ndb-7.5.6)

id=32@10.0.128.85  (mysql-5.7.18 ndb-7.5.6)

|测试

修改mysql密码统一,修改mysql的访问权限,使外部ip能远程访问mysql

#cd /usr/local/mysql/

#bin/mysql --user=root –p

输入之前保存的临时密码。

然后修改密码

mysql> set password=password('root');

允许客户端远程连接

mysql>grant all privileges on *.* to root@'%' identified by 'root';

2b4205b311fb33992478ae0e892464fa.png

然后创建在一台上面创建数据库,看另一台是否被同步,然后创建表,然后新增删除等等。

唯一需要注意的是,创建表的时候必须选择表的引擎为ndbcluster,否则表不会进行同步

下面是测试的截图

0448aa00f299805f3d0caaeed56dbe69.png

|启动和关闭

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

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

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

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

描述

命令

停止管理节点

/usr/local/bin/ndb_mgm -e shutdown

启动管理节点

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

初始化管理节点启动

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

启动数据节点

/usr/local/mysql/bin/ndbd

初始化mysql

./mysqld --initialize

启动sql节点

/etc/init.d/mysql.server start

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值