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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL DuckDB 分析主实例,集群系列 8核16GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 最近在项目中用到了MySQL集群,所以就和小伙伴们研究了两天。下面给大家分享一下成果。小编始终觉得对新事物的学习,没有比看图这种方式更好地理解了。所以先来看一张mysql集群的架构图(摘自百度百科-MySQL Cluster):

#前言


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

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

0.jpg


上图一共分了四层: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目录下:


1.png

##2、配置管理节点


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


my.ini

[mysql_cluster] 
# Options for management node process 
config-file=C:/mysql/bin/config/config.ini

config.ini

[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中运行如下命令


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.gif


##2、启动每个数据节点:


在cmd中运行如下命令:


c:\mysql\bin\ndbd.exe --ndb-connectstring=192.168.25.50


3.gif


##3、启动每个sql节点:


在cmd中运行如下命令:


c:\mysql\bin\mysqld.exe --ndbcluster --ndb-connectstring=192.168.25.50 --console


4.gif


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


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


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


c:\mysql\bin\ndb_mgm


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

5.gif


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


#四、测试MySQL集群


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


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


创建数据库并插入数据:


-----创建名为"MySQL_Cluster_Test"的数据库:


 create database MySQL_Cluster_Test;


-----创建表"T_User":


use MySQL_Cluster_Test;
create table T_User(Name varchar(32),Age int) engine=ndbcluster;


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


-----插入数据:

insert into T_User values('DannyHoo',26);


-----查询数据:


select * from T_User;


6.gif


##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插入的数据。

7.gif

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


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
4月前
|
Windows
Windows无法连接到打印机,请检查打印机名并重试 - 配置Windows 共享打印机出错;
WIN7共享打印机无法被WIN11连接,出现错误代码0x0000011b或0x00000709,可能是系统版本不兼容所致。本文提供多个轻量级修复工具,无需安装,双击即用,专为解决此类小问题设计,操作简单,适合普通用户快速修复打印机连接异常。
727 0
|
8月前
|
XML 存储 搜索推荐
Omnissa Dynamic Environment Manager 2503 - 个性化动态 Windows 桌面环境管理
Omnissa Dynamic Environment Manager 2503 - 个性化动态 Windows 桌面环境管理
141 7
Omnissa Dynamic Environment Manager 2503 - 个性化动态 Windows 桌面环境管理
|
5月前
|
网络安全 Windows
Windows IIS 10如何配置自签名SSL并实现自动跳转
本文记录了IIS配置自签名证书及HTTPS跳转的注意事项。包括解决443端口占用问题、URL Rewrite插件安装与配置、web.config修改方法,以及避免因旧教程导致的配置错误。
Windows IIS 10如何配置自签名SSL并实现自动跳转
|
5月前
|
C语言 图形学 Windows
Windows下安装和配置GTK4(基于CLion)
本文介绍了作者选择GTK作为C语言图形库的原因,包括代码简洁、控件丰富和界面美观,并分享了在Windows环境下通过MSYS2安装GTK4及在CLion中配置开发环境的详细步骤。
596 0
|
5月前
|
Windows
Windows下版本控制器(SVN)-验证是否安装成功+配置版本库+启动服务器端程序
Windows下版本控制器(SVN)-验证是否安装成功+配置版本库+启动服务器端程序
153 2
|
7月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
478 11
|
8月前
|
安全 Windows
“由于启动计算机时出现了页面文件配置问题,Windows在你的计算机上创建了一个临时页面文件。。。”的问题解决
本文主要介绍了因清理电脑垃圾文件时误删虚拟内存导致的Windows页面文件配置问题,并提供了详细的解决步骤。问题表现为开机后出现临时页面文件创建的提示弹窗。解决方法包括通过控制面板或快捷键进入高级系统设置,进而调整虚拟内存设置:进入性能选项中的虚拟内存栏,选择自动管理所有驱动器的分页文件大小,最后确认并重启计算机以恢复正常运行。
6458 5
“由于启动计算机时出现了页面文件配置问题,Windows在你的计算机上创建了一个临时页面文件。。。”的问题解决
|
8月前
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
384 28
|
Windows
Windows下版本控制器(SVN)- 配置版本库
Windows下版本控制器(SVN)- 配置版本库
68 0
|
6月前
|
安全 Shell 开发工具
Windows下使用git配置gitee远程仓库
就在前几天因为一些原因,我的电脑重装了系统,然后再重新配置git的环境的时候就遇到了一些小问题。所以我决定自己写一篇文章,以便以后再配置git时,避免一些错误操作,而导致全网搜方法,找对的文章去找对应的解决方法。下面为了演示方便就拿gitee来演示,不拿GitHub了写文章了。
297 0

推荐镜像

更多