一.介绍
1. 官网介绍
MySQL集群是一个无共享的(share-nothing)、分布式节点架构的存储方案,目的是提供容错性和高性能。
NDB Cluster 是一种在无共享系统中实现内存数据库集群的技术。 无共享架构使系统能够使用非常便宜的硬件,并且对硬件或软件的特定要求最低。
NDB Cluster的设计不会出现任何单点故障。 在无共享系统中,每个组件都应具有自己的内存和磁盘,并且不建议或不支持使用共享存储机制,如网络共享,网络文件系统和SAN。
NDB Cluster将标准MySQL服务器与称为内存的集群存储引擎 NDB (代表 “ N etwork D ata B ase ” ) 集成在一起 。 在我们的文档中,该术语 NDB 指的是特定于存储引擎的设置部分,而 “ MySQL NDB Cluster ” 指的是一个或多个MySQL服务器与 NDB 存储引擎的组合。
NDB群集由一组称为 主机 的计算机组成 ,每台 计算机 运行一个或多个进程。 这些称为 节点的 过程 可以包括MySQL服务器(用于访问NDB数据),数据节点(用于存储数据),一个或多个管理服务器,以及可能的其他专用数据访问程序。 这里显示了NDB集群中这些组件的关系:
图 NDB群集组件
2. NDB集群核心概念
NDBCLUSTER (也称为 NDB )是一种内存存储引擎,提供高可用性和数据持久性功能。
的 NDBCLUSTER 存储引擎可以与一系列故障切换和负载平衡选项进行配置,但最简单的是开始在集群级别的存储引擎。 NDB Cluster的 NDB 存储引擎包含一整套数据,仅依赖于集群内部的其他数据。
NDB Cluster 的 “ Cluster ” 部分是独立于MySQL服务器配置的。 在NDB群集中,群集的每个部分都被视为一个 节点 。
在许多情况下,术语 “ 节点 ” 用于表示计算机,但在讨论NDB群集时,它意味着一个 过程 。 可以在一台计算机上运行多个节点; 对于运行一个或多个群集节点的计算机,我们使用术语 群集主机 。
有三种类型的集群节点,在最小的NDB集群配置中,将至少有三个节点,每种节点中的一种:
-
管理节点 :此类 节点 的作用是管理NDB集群中的其他节点,执行诸如提供配置数据,启动和停止节点以及运行备份等功能。 由于此节点类型管理其他节点的配置,因此应首先在任何其他节点之前启动此类型的节点。 使用命令 ndb_mgmd 启动MGM节点 。
-
数据节点 :此类节点存储群集数据。 存在与副本一样多的数据节点,乘以片段的数量(请参见 第22.1.2节“NDB群集节点,节点组,副本和分区” )。 例如,如果有两个副本,每个副本有两个片段,则需要四个数据节点。 一个副本足以用于数据存储,但不提供冗余; 因此,建议使用2个(或更多)副本来提供冗余,从而提供高可用性。 使用命令 ndbd 启动数据节点 (请参见 第22.4.1节“ ndbd - NDB集群数据节点守护程序” )或 ndbmtd (参见 第 22.4.3 节“ ndbmtd - NDB集群数据节点守护进程(多线程)” )。
NDB Cluster表通常完全存储在内存中而不是磁盘上(这就是我们将NDB Cluster称为 内存 数据库的原因)。 但是,一些NDB Cluster数据可以存储在磁盘上; 有关更多信息 , 请参见 第22.5.13节“NDB集群磁盘数据表” 。
-
SQL节点 :这是一个访问集群数据的节点。 对于NDB Cluster,SQL节点是使用 NDBCLUSTER 存储引擎 的传统MySQL服务器 。 SQL节点是 使用 和 选项 启动 的 mysqld 进程 ,本章的其他地方对此进行了解释,可能还有其他MySQL服务器选项。 --ndbcluster
--ndb-connectstring
想要了解更多的请移步Mysql8.0中文文档:https://www.dbanote.com/doc/MySQL8_Dev/cn/web.html
二.下载软件
1.通过官网链接下载Mysql NDB Cluster 二进制安装包
链接:MySQL :: Download MySQL NDB Cluster
需要下载其他版本的点击 Archives 查看历史版本
三.环境搭建
本次搭建的集群为最低配版本,使用两台Windows计算机,一台为管理节点、数据节点、SQL节点,另一台为数据节点和SQL节点。
1.环境准备
ip地址 | 系统 | 节点信息 |
---|---|---|
221.195.164.191 | Windows 11 | 管理节点 |
221.195.164.190 | Windows 11 | 数据节点 |
221.195.164.191 | Windows 11 | SQL节点 |
221.195.164.190 | Windows 11 | 数据节点 |
221.195.164.191 | Windows 11 | SQL节点 |
2.管理节点配置
2.1 将安装包解压到指定目录 列如:D:\mysql\mysql-cluster
2.2 在bin目录下创建config目录用于存放配置文件,接着在config目录下创建config.ini和my.ini文件
切记该文件在本地创建不要在其他电脑上复制否则会报错。
3.编写config.ini配置文件
[ndbd default]
NoOfReplicas=2 #集群数量
DataDir=D:/mysql/mysql-cluster/cluster-data
[ndb_mgmd]
NodeId=1
HostName=221.195.164.191 #管理节点地址
DataDir=D:/mysql/mysql-cluster/cluster-logs
[ndbd]
NodeId=2
HostName=221.195.164.191 #数据节点地址
DataDir=D:/mysql/mysql-cluster/cluster-data
[ndbd]
NodeId=3
HostName=221.195.164.190 #数据节点地址
DataDir=D:/mysql/mysql-cluster/cluster-data
[mysqld]
NodeId=50
HostName=221.195.164.190 #Mysql节点地址
[mysqld]
NodeId=51
HostName=221.195.164.191 #Mysql节点地址
[MYSQLD]
[MYSQLD]
[MYSQLD]
[MYSQLD]
4.编写my.ini配置文件
[mysql_cluster]
# Options for management node process
config-file=D:/mysql/mysql-cluster/bin/config/config.ini
步骤 1:创建 .ndbinfo 目录
如果目录不存在,请创建它:
1mkdir "D:\mysql\mysql-cluster\data\.ndbinfo"
步骤 2:初始化 .ndbinfo 目录
确保 .ndbinfo 目录初始化正确。如果需要,可以重新初始化数据目录:
D:\mysql\mysql-cluster\bin>mysqld.exe --initialize --datadir="D:\mysql\mysql-cluster\data"
5.将管理节点配置为SQL节点和数据节点,回到D:\mysql\mysql-cluster目录下创建my.ini文件即可
[mysqld]
ndbcluster
max_connections=50 #最大连接数
ndb-connectstring=221.195.164.191 #管理节点IP
6. SQL节点和数据节点安装
安装步骤一致 都是将mysql集群安装包复制并解压到D:\mysql\mysql-cluster目录下
然后在D:\mysql\mysql-cluster目录下创建my.ini文件 用于注册数据节点和SQL节点信息
My.ini 文件与191节点保持一致
[mysqld]
ndbcluster
max_connections=50
ndb-connectstring=221.195.164.191 #管理节点IP
6.1 初始化数据
节点执行相同的操作
进入D:\mysql\mysql-cluster\bin目录打开cmd命令窗口
执行mysqld.exe --initialize --datadir=C:\mysql\mysql-cluster\data
初始化完成后会在D:\mysql\mysql-cluster\data目录下的 <主机名称.err> 文件中保存一个自动生成的密码。
6.2 修改密码
执行ALTER USER 'root'@'localhost' IDENTIFIED BY 'abc123456';
6.3 启动集群
启动顺序:启动管理节点--> 启动数据节点 --> 启动SQL节点
通过执行D:\mysql\mysql-cluster\bin目录下的ndb_mgm.exe程序
执行show命令查看节点状态
该配置为基础配置,需要配置更多参数请移步官方文档查看。