linux mysql 集群搭建_MySQL分布式集群搭建-程序员宅基地

技术标签: linux mysql 集群搭建  

1、准备集群搭建环境

使用6台虚拟机来搭建MySQL集群,相应的实验环境与对应的MYSQL节点之间的对应关系如下图所示:

节点名称

节点IP

节点内存

节点硬盘大小

节点CPU

MYSQL节点角色

Ubuntu-1

192.168.1.26

768M

20G

30%

管理节点(MGM)

Ubuntu-2

192.168.1.27

768M

10G

30%

数据节点(NDB)

Ubuntu-3

192.168.1.28

768M

10G

30%

数据节点(NDB)

Ubuntu-4

192.168.1.29

768M

10G

30%

数据节点(NDB)

Ubuntu-5

192.168.1.31

768M

10G

30%

客户(SQL)节点

Ubuntu-6

192.168.1.32

768M

10G

30%

客户(SQL)节点

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

数据节点(NDB):这类节点用于保存Cluster的数据,数据节点的数目与副本的数目相关,是片段的倍数。例如,对于两个副本,每个副本有两个片段,那么就有4个数据节点,没有必要设定过多的副本,在NDB中数据会尽量的保存在内存中。数据节点使用命令“ndb”启动的;

SQL节点:这是用来访问Cluster数据的节点,对于MySQL Cluster,客户端节点是使用NDB Cluster存储引擎的传统MySQL服务器。通常,SQL节点使用命令“mysqld-ndbcluster”启动的;

2、准备安装包

在官网上下载mysql的安装包: mysql-cluster-gpl-7.4.11-Linux-glibc2.5-x86_64.tar.gz,并进行解压。

3、集群搭建流程

1]将上述安装包解压出来的文件都移到/usr/local/mysql下;

2]运行script目录下的mysql-install-db.sh脚本,运行命令为./mysql-install-db.sh   --user=root--basedir =/usr/local/mysql --datadir=/usr/local/mysql;注意其中用户为root的名称需要跟配置文件my.cnf中的相同;

在管理节点,数据节点,SQL节点上都执行上述安装命令,从而完成对mysql的安装;

4、集群配置与启动

1]在管理节点上需要完成对于集群整体的配置配置:在/var/lib/mysql-cluster/config.ini中实现如下的配置信息:

f94f90d16425c50180863c885f3fbb7d.png

2]在数据节点中需要在my.cnf中完成对于数据节点的相关配置信息,如下:

cb173f52558d78ae4241112cb2030030.png

需要指明配置的数据节点的根目录,数据目录,socket连接配置,用户配置,以及对应的管理节点的ip地址配置;将配置完成的配置文件移动到/etc/my.cnf,完成;

3]在SQL节点上完成对于SQL节点的配置信息,同样的是在my.cnf中完成相应配置信息,并将配置文件移动到/etc/my.cnf中,相应的配置信息的设定如下所示:

738244473bb0082e56f5832913695a10.png

完成以上配置后,就可以启动集群中的各个节点了。

5、集群启动

在启动mysql集群的时候,注意首先要启动管理节点,并依次启动其他等若干个节点,相应的启动步骤如下:

1]在管理节点上,切换到/usr/local/mysql/bin目录下,执行ndb_mgmd -f /var/lib/mysql-cluster/config.ini命令,完成管理节点的启动;

2]在各个数据节点上,切换到/usr/local/mysql/bin目录下,执行ndbd --initial(第一次启动时,否则执行ndbd即可),完成对数据节点的启动;

3]在各个SQL节点上,同样切换到/usr/local/mysql/bin目录下,执行mysqld_safe --user=root完成启动;

4]在管理节点上运行ndb_mgm命令,进入数据库管理的客户端,输入show命令,查看与之相连接的各个节点的状态;

5]在SQL节点上分别进入系统的安全状态,并完成对root用户的密码修改,运行以下指令,进行密码修改:

A use mysql,切换到mysql数据库;

B UPDATE user SET Password = PASSWORD('123456')WHERE user = 'root';从而实现对root密码的修改;

C flush privilege,完成修改;

6]修改使得任意主机都能连得上mysql,进行如下修改,同样安装第5步进入安全模式,并完成相应的修改,如下:

grant all on‘*.*’to ‘root@'%' identified by '123456';

这样就可以使得任意一个主机都可以通过root用户来登录mysql了;

6、集群测试

在集群上的一个SQL节点上执行创建数据库,并创建一张表,并完成相应的数据插入,如下:

A create database ctest;                          //创建数据库

B create table test(

id int primarykey;                  //创建一张表

);

C insert into test (id)values(1);           //完成数据插入

登录另外一个SQL节点,并执行SQL查询操作,看数据库中是否已经有数据,如下:

select * from ctest;

如果有数据,表示数据插入成功;

7、关闭集群

1]首先关闭管理节点和数据节点,需要在管理节点上执行命令,如下:./ndb_mgm -e shutdown;

2]然后关闭SQL节点,在SQL节点上执行命令/usr/local/mysql/support-fies/mysql.server stop(其中/usr/local/mysql/是mysql的安装目录).从而关闭SQL节点;

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39735288/article/details/113583866

智能推荐

王爽《汇编语言》实验17——编写包含多个功能子程序的中断例程_汇编语言实验17-程序员宅基地

文章浏览阅读1.9k次。王爽《汇编语言》实验17——编写包含多个功能子程序的中断例程安装一个新的 int 7ch 中断例程,用逻辑扇区号对软盘进行读写_汇编语言实验17

交易理念 :游资、私募的超短线投资理念_私募能做超短吗-程序员宅基地

文章浏览阅读4.1k次。文章目录交易理念 :游资、私募的超短线投资理念1、操作理念2、操作背景2、操作方式交易理念 :游资、私募的超短线投资理念1、操作理念一、强者恒强个股的强势必然通过强劲的走势得以体现,因此敢于在次日买入前一日率先涨停的个股二、持股时间越短,风险越小因此从风险的角度看,降低风险的有效方法就是最大程度减小持股时间三、把所有注意力集中在强势超短线上注意力集中才能获得最好的操作效果,因此只关注自身炒作领域里面所买卖股票的涨跌即可2、操作背景一、市场短期内将要走强,或者某些重要事件和消息对相_私募能做超短吗

设置c语言枚举变量的默认值,c++ 结构体 默认值_漫谈——typedef关键字、结构体、枚举及共同体...-程序员宅基地

文章浏览阅读994次。(1)typedef关键字和结构体typedef用来定义新的数据类型,通常typedef与结构体或枚举的定义配合使用。使用typedef的目的使结构体的表达更加简练。个人认为typedef不是必须使用的,但是精炼了代码。a)typedef定义数据类型typedef int integer;integer a,b;b)定义一个结构体GPIO_InitTypeDef:struct GPIO_InitT..._如何改变枚举成员的默认值

阿里巴巴电话面试_进阿里巴巴云计算实习要经过几次面试-程序员宅基地

文章浏览阅读923次。周一晚上我还在看来自星星的你,接到了一个陌生电话,那头是个gg说是阿里巴巴的,然后没有任何的寒暄,就开始问我各种问题,我当时那个激动的啊,真的问了各种问题啊,有数据库,linux java jsp 框架等等。等到周三晚上还是没有给我二面的机会,估计是跪了,现在回想跪的原因估计是linux和框架那块没有答上来。但是最后问gg说我今天面试怎么样,他说学习能力还是不错的,基础知识掌握也不错,就是问题_进阿里巴巴云计算实习要经过几次面试

【Testops学习积累之二】Jenkins Pipeline中Git打包、Sonar扫描静态代码实践操作过程记录_jenkis 做testops-程序员宅基地

文章浏览阅读391次。步骤1:在jenkins服务器中,下载git和部署,并在jenkins中安装git插件,并在系统管理--全局工具配置中配置git路径(如下图)步骤2:jenkins服务器中,安装和部署mysql(自行百度,也可以采用docker 容器部署),并启动参考资料:https://www.cnblogs.com/yoyotl/p/5752437.html步骤3:docker 安..._jenkis 做testops

使用TensorFlow实现余弦距离/欧氏距离(Euclidean distance)以及Attention矩阵的计算_tensorflow.keras里计算欧式距离的函数-程序员宅基地

文章浏览阅读3.4w次,点赞4次,收藏24次。最近在使用tensorflow完成句子相似度建模等任务时常常会用到各种距离的计算,而且有很多论文提出了Attention机制,所以这里就介绍一下如何使用tensorflow实现上述各种功能。 这里首先假定我们的输入是两个四维的Tensor,然后我们需要计算的是其中某个维度的距离。比如说我们的输入是batch个句子,句长是sent_len, 每个词被表示成embed_size的词向量。所以我们的输入_tensorflow.keras里计算欧式距离的函数

随便推点

idea配置tomcat无法apply的跳坑经历_idea中点击apply没有反应-程序员宅基地

文章浏览阅读4.3k次,点赞6次,收藏6次。 他妈的,真是服了,这个破问题竟然困了我好几个小时。一直在网上找没有相关的教程,又不想花太多时间翻墙,只好自己摸索这样子。 一个一个问题的排除,查看日志,都没有找到问题所在。 我都怀疑是不是软件问题,或者其他什么的了。 哎,也怪自己上课不认真吧,自己给自己挖了一个坑。 在此记录一下。 (但是说实话这里还是比较容易出错的,尤其对于那些自己为很聪明的人来说,哈哈哈)。 我..._idea中点击apply没有反应

2023年前端面试题-Html篇-程序员宅基地

文章浏览阅读60次。1、前端如何选择图片的格式?2、解释一下 浏览器的标准模式和怪异模式 (混杂模式)3、简述从输入网址到页面显示的整个过程

EC_Class_ec class-程序员宅基地

文章浏览阅读1.4k次。// EC_Class.h: interface for the EC_Class class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_EC_CLASS_H__360A35F7_DB6B_4390_810E_FFEF59954245__INC_ec class

寄存器r0 - r12 是什么?-程序员宅基地

寄存器r0 - r12是ARM处理器中用于存储临时数据、函数参数和返回值的通用寄存器,都是32位的。r13-r15则分别用于存储栈指针(SP)、链接寄存器(LR)和程序计数器(PC)。

小米6无人直播刷机包教程_小米6直播刷机包-程序员宅基地

文章浏览阅读2.9k次。首先第一步我们需要解锁小米6的BL锁权限。解锁完以后,先刷入官网包。如图:这里一定要注意。选择第一个全部删除!选择第一个全部删除!第一个全部删除!刷好官方底层包以后进入系统,直接关机,进入FASTBOOT模式。这时候我们打开刷入Rec。刷入完以后他会自动跳转 这时候我们数据线链接上电脑,导入虚拟包。双清-刷入。刷完虚拟包以后,一定要开机,开机能正常的进入Lineage OS 原生系统后,界面跟小米系统是很有区别的,一眼即可辨之!能开机后,我们关机,关机按住音量上加开机键,进入recove_小米6直播刷机包

SpringCloudConfig配置完成后客户端读取不到配置中心的配置文件_配置中心读取不到文件-程序员宅基地

文章浏览阅读3.3k次。有可能是客户端启动类上使用的是 @EnableEurekaClient注解,可以尝试改成@EnableDiscoveryClient/** * 开启eureka客户端功能 *///@EnableEurekaClient/** * @EnableEurekaClient和@EnableDiscoveryClient都让注册中心能够发现,扫描到该服务。 * 不同点:@EnableEurekaClient只适用于Eureka作为注册中心,@EnableDiscoveryClient 可以是其_配置中心读取不到文件