首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【MySQL集群】——在Windows环境下配置MySQL集群

【MySQL集群】——在Windows环境下配置MySQL集群

作者头像
DannyHoo
发布于 2018-09-13 03:50:32
发布于 2018-09-13 03:50:32
3.5K00
举报
文章被收录于专栏:Danny的专栏Danny的专栏
运行总次数:0

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1337028

前言


最近在项目中用到了MySQL集群,所以就和小伙伴们研究了两天。下面给大家分享一下成果。

小编始终觉得对新事物的学习,没有比看图这种方式更好地理解了。所以先来看一张mysql集群的架构图(摘自百度百科-MySQL Cluster):

上图一共分了四层:Applications、SQL、Storage、Management。

如果您的英语不是体育老师教的的话,那么您肯定已经猜出来每一层的职责了:

—–Applications主要是指需要连接数据库的应用程序;

—–SQL中每一个mysqld都是一个sql节点,Applications需要通过连接sql节点来存储数据,您可以把它看成应用程序与数据库集群进行数据交换的大门

—–Storage有‘仓库’的意思,所以数据都是存在数据节点(ndbd)中的,而且每个数据节点的数据都是一致的,都是一整套最新的数据

—–Management中就是管理节点,一个MySQL中只有一个管理节点,用来管理其他节点

综上所述,一个MySQL集群中包括三种节点(不包括Applications):管理节点、数据节点,sql节点。


一、下载集群版mysql

下载mysql-cluster-gpl-7.4.7-win32或mysql-cluster-gpl-7.4.7-winx64

下载地址:http://yunpan.cn/cd892RtysQ3Vk (提取码:45c8)

MySQL官网下载地址:http://dev.mysql.com/downloads/cluster/


二、配置MySQL集群

需要用三台机器(没有条件的朋友可以考虑用虚拟机),一台配置管理节点:另外两台每台配置一个数据节点和一个SQL节点(也可以用五台计算机,每台计算机配置一个节点):

管理节点:192.168.25.50

数据节点A:192.168.25.49

数据节点B:192.168.25.48

SQL节点A:192.168.25.49

SQL节点B:192.168.25.48

1、首先将下载压缩包解压到每台电脑的C:/mysql目录下:

2、配置管理节点

在配置管理节点(192.168.25.50)的计算机上的C:\Mysql\Bin目录下建立cluster-logs和config两个文件夹。cluster-logs用来存储日志文件,在config文件夹中建立my.ini和config.ini两个配置文件:

my.ini

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[mysql_cluster] 
# Options for management node process 
config-file=C:/mysql/bin/config/config.ini

config.ini

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[ndbd default] 
# Options affecting ndbd processes on all data nodes: 
NoOfReplicas=2                      # Number of replicas 
DataDir=C:/mysql/bin/cluster-data   # Directory for each data node's data files 
                                    # Forward slashes used in directory path, 
                                    # rather than backslashes. This is correct; 
                                    # see Important note in text 

DataMemory=80M                      # Memory allocated to data storage 
IndexMemory=18M                     # Memory allocated to index storage 
                                    # For DataMemory and IndexMemory, we have used the 
                                    # default values. Since the "world" database takes up 
                                    # only about 500KB, this should be more than enough for 
                                    # this example Cluster setup.

[ndb_mgmd] 
# Management process options: 
HostName=192.168.25.50              # Hostname or IP address of management node 
DataDir=C:/mysql/bin/cluster-logs   # Directory for management node log files

[ndbd] 
# Options for data node "A":     
HostName=192.168.25.49              # Hostname or IP address

[ndbd] 
# Options for data node "B":
HostName=192.168.25.48              # Hostname or IP address

[mysqld] 
# SQL node A options:
HostName=192.168.25.49              # Hostname or IP address

[mysqld] 
# SQL node B options:
HostName=192.168.25.48              # Hostname or IP address

3、配置数据节点

在配置数据节点(192.168.25.48、192.168.25.49)的计算机上的C:\Mysql\Bin目录下建立cluster-data文件夹,用来存放数据:

SQL节点不用任何配置,至此,整个MySQL集群就搭建完成了。

三、启动MySQL集群


启动MySQL集群时,有一个启动顺序:先启动管理节点,再启动数据节点,再启动sql节点。

1、启动管理节点:

在cmd中运行如下命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
c:\mysql\bin\ndb_mgmd.exe --configdir=c:\mysql\bin\config --config-file=c:\mysql\bin\config\config.ini --ndb-nodeid=1 --reload –initial

2、启动每个数据节点:

在cmd中运行如下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
c:\mysql\bin\ndbd.exe --ndb-connectstring=192.168.25.50

3、启动每个sql节点:

在cmd中运行如下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
c:\mysql\bin\mysqld.exe --ndbcluster --ndb-connectstring=192.168.25.50 --console

现在整个MySQL集群就已经启动了。

4、查看每个节点的状态:

在管理节点所在计算机上(192.168.25.50)打开ndb_mgm.exe,或者直接在cmd中运行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
c:\mysql\bin\ndb_mgm

执行“show”命令,可以查看到每个节点的连接状态:

这就表明每个节点均连接正常。下面测试数据。

四、测试MySQL集群


1、在sql节点A建立数据库并插入数据:

在sql节点A的计算机上(192.168.25.49)的cmd中运行C:\mysql\bin\mysql.exe -u root -p命令登录mysql,接下来需要输入密码时,密码默认为空(直接回车)。

创建数据库并插入数据:

—–创建名为”MySQL_Cluster_Test”的数据库:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 create database MySQL_Cluster_Test;

—–创建表”T_User”:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
use MySQL_Cluster_Test;
create table T_User(Name varchar(32),Age int) engine=ndbcluster;

注意建表语句后面一定要加上 engine=ndbcluster

—–插入数据:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
insert into T_User values('DannyHoo',26);

—–查询数据:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select * from T_User;

2、在sql节点B也可以查询到数据。

同样在sql节点B的计算机上(192.168.25.48)的cmd中运行C:\mysql\bin\mysql.exe -u root -p命令登录mysql。

执行 show databases; 命令可以查看到在sql节点A新建的数据库;

执行use MySQL_Cluster_Test;

    select * from T_User;

可以查询到在sql节点A插入的数据。


到这里,整个集群的搭建和测试就完成了。假如一个数据节点宕机,并不会影响整个集群的运行,任何一个数据节点死掉甚至物理损坏都不用担心,因为每个数据节点保存的数据都是完整的一份数据(在你操作数据的时候,它早就自动为你把最新的数据备份到每一个数据节点上啦)。你可以测试一下,这时手动停止某个数据节点和sql节点,另外一个数据节点和sql节点还会正常运行。当你把停止的数据节点和sql节点重新启动时,会发现又重新连接到集群里了,而且每个数据节点的数据都是最新的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015年08月15日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Vue常用系统指令
标签将会被替代为对应数据对象上 msg 属性(msg定义在data对象中)的值。无论何时,绑定的数据对象上 msg 属性发生了改变,插值处的内容都会更新。 插值表达式主要展示Vue对象中data中的数据,合法的数据表达式 1直接写变量 2字符串拼接 3数值运算 4三元表达式 5内置函数
羊羽shine
2019/06/13
7420
10天从入门到精通Vue(一)-vue基本概念和基础语法(v-text、v-bind、v-on、v-model等)
v-text会覆盖元素中原本的内容,但是 插值表达式 只会替换自己的这个占位符,不会把 整个元素的内容清空。v-html会解析文本中的html标签后展示。具体代码如下:
共饮一杯无
2022/11/28
1.8K0
10天从入门到精通Vue(一)-vue基本概念和基础语法(v-text、v-bind、v-on、v-model等)
全栈工程师开发实战之从入门到技术实战之02--vue指令
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6kqd13Tt-1654938578648)(assets/image-20220202161926801.png)]
张哥编程
2024/12/13
6190
全栈工程师开发实战之从入门到技术实战之02--vue指令
Vue指令 - 从零开始学Vue2
指令 (Directives) 是带有 v- 前缀的特殊 attribute。指令 attribute 的值预期是单个 JavaScript 表达式。指令的职责是,当表达式的值改变时,将其产生的连带影响,响应式地作用于 DOM。 例如:
玖柒的小窝
2021/10/24
2.7K0
Vue指令 - 从零开始学Vue2
VueJS 常用系统指令
可以用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码
cwl_java
2019/12/25
1.4K0
Vue入门---常用指令详解
Vue是一个MVVM(Model / View / ViewModel)的前端框架,相对于Angular来说简单、易学上手快,近两年也也别流行,发展速度较快,已经超越Angular了。比较适用于移动端,轻量级的框架,文件小,运行速度快。最近,闲来无事,所以学习一下Vue这个流行的框架,以备后用。
半指温柔乐
2018/09/11
2K0
Vue入门---常用指令详解
Vue模板语法
基本上就是将数据以字符串的方式拼接到HTML标 签中,前端代码风格大体上如下所示。
星辰_大海
2022/05/10
7.2K0
Vue模板语法
Vue成神之路之内部指令
vue.js——开发版本:包含完整的警告和调试模式 vue.min.js——生产版本:删除了警告,进行了压缩
小胖
2018/12/14
2.8K0
VUE-指令
指令 (Directives) 是带有 v- 前缀的特殊特性。指令特性的预期值是:单个 JavaScript 表达式。指令的职责是,当表达式的值改变时,将其产生的连带影响,响应式地作用于 DOM。
cwl_java
2020/02/11
2.6K0
Vue实践--指令
1. v-text     v-text主要用来更新textContent,可以等同于JS的text属性。
问天丶天问
2019/01/28
1.4K0
vue之插值表达式
使用{{}}方式在网速较慢时会出现问题。在数据未加载完成时,页面会显示出原始的`{{}}`, 加载完毕后才显示正确数据,我们称为插值闪烁。 我们将网速调慢一些,然后刷新页面,试试看刚才的案例: 
一个风轻云淡
2022/11/15
2.1K0
vue之插值表达式
后端人眼中的Vue(二)
​ 和插值表达式({{}})一样,用于获取vue实例中data属性声明的数据。用法是在哪个标签上获取就直接在哪个标签上定义v-text或者是v-html。相当于javascript中的innerText。直接将获取的数据直接渲染到指定标签中。
上分如喝水
2023/01/08
2.6K0
后端人眼中的Vue(二)
Vue 相关学习笔记(一)
可能有安全问题, 一般只在可信任内容上使用 v-html,永不用在用户提交的内容上
用户6808043
2022/02/24
8K0
Vue 相关学习笔记(一)
Vue常用内置指令
v-show指令根据表达式的真假,显示或隐藏HTML元素。   使用v-show指令,元素本身是要被渲染的,至于是否显示是通过设置CSS样式属性display来控制的,如果表达式的值为false,则设置样式:"display:none"
别团等shy哥发育
2023/02/25
5090
Vue常用内置指令
Vue3入门-指令
指令式Vue提供的带有v-前缀的特殊标签属性,用来增强标签的能力。可以提高数据的渲染能力。
Yui_
2025/07/18
1810
Vue3入门-指令
Python-drf前戏38-前端Vue
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
2.6K0
Vue 学习笔记 —— 模板语法 (一)
我们在使用插值表达式的时候,游览器第一次渲染的时候可能会出现一下 表达式的字符串,然后就被替换 data 中的数据内容,这种情况解决就如官方文档的方式皆可以解决了。
Gorit
2021/12/08
1.8K0
Vue 学习笔记 —— 模板语法 (一)
(第一季)Vue2.0-内部指令
Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。
楠楠
2018/09/11
8920
(第一季)Vue2.0-内部指令
前端基础-Vue.js模板语法(指令)
指令 (Directives) 是带有 v- 前缀的特殊 特性 相当于自定义html属性。指令特性的值预期是单个 JavaScript 表达式 (v-for 是例外情况,稍后我们再讨论)。指令的职责是,当表达式的值改变时,将其产生的连带影响,响应式地作用于 DOM;参考 手册 、 API
cwl_java
2020/03/26
9.6K0
Web前端-Vue.js必备框架(一)
什么是Vue.js?是目前最火的框架,React是最流行的框架,打包工具Webpack,目前三大主流Vue.js,Angular.js,React.js框架。
达达前端
2019/07/03
4.3K0
Web前端-Vue.js必备框架(一)
相关推荐
Vue常用系统指令
更多 >
交个朋友
加入腾讯云官网粉丝站
双11活动抢先看 更有社群专属礼券掉落
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档