本节描述了使用 Oracle 提供的二进制“无安装”NDB 集群发行版在 Windows 上安装 NDB 集群的基本步骤,使用本节开头所述的 4 节点设置(见 第 25.3 节,“NDB 集群安装”),如下表所示:
与其他平台一样,运行 SQL 节点的 NDB 集群主机计算机必须安装 MySQL 服务器二进制文件 (mysqld.exe)。您还应该在此主机上安装 MySQL 客户端 (mysql.exe)。对于管理节点和数据节点,不需要安装 MySQL 服务器二进制文件;但是,每个管理节点都需要管理服务器守护进程 (ndb_mgmd.exe);每个数据节点都需要数据节点守护进程 (ndbd.exe 或 ndbmtd.exe)。在本示例中,我们将 ndbd.exe 作为数据节点可执行文件,但您可以安装 ndbmtd.exe,该程序的多线程版本,以相同的方式安装。您还应该在管理服务器主机上安装管理客户端 (ndb_mgm.exe)。
与其他 Windows 程序一样,NDB 集群可执行文件以 .exe
文件扩展名命名。但是,在命令行中调用这些程序时,不需要包括 .exe
扩展名。因此,在本文档中,我们经常简单地将这些程序称为 mysqld、mysql、ndb_mgmd 等。您应该了解,我们是否将(例如)mysqld 或 mysqld.exe 都是指同一个程序(MySQL 服务器程序)。
使用 Oracle 的 no-install
二进制文件设置 NDB 集群的第一步是从 https://dev.mysql.com/downloads/cluster/ 下载最新的 NDB 集群 Windows ZIP 二进制存档。该存档的文件名为 mysql-cluster-gpl-
,其中 ver
-winarch
.zipver
是 NDB 存储引擎版本(例如 8.3.0
),arch
是架构(32
为 32 位二进制文件,64
为 64 位二进制文件)。例如,NDB 集群 8.3.0 存档为 64 位 Windows 系统的名称为 mysql-cluster-gpl-8.3.0-win64.zip
。
您可以在 32 位和 64 位版本的 Windows 上运行 32 位 NDB 集群二进制文件;但是,64 位 NDB 集群二进制文件只能在 64 位版本的 Windows 上使用。如果您在 64 位 CPU 的计算机上使用 32 位版本的 Windows,那么您必须使用 32 位 NDB 集群二进制文件。
为了减少从 Internet 下载或在机器之间复制的文件数量,我们从计划在其中运行 SQL 节点的计算机开始。
SQL 节点。 我们假设您已经将存档复制到计算机的目录 C:\Documents and Settings\
中,该计算机的 IP 地址为 198.51.100.20,其中 username
\My Documents\Downloadsusername
是当前用户的名称。(您可以使用命令行上的 ECHO %USERNAME%
获得该名称。)要作为 Windows 服务安装和运行 NDB 集群可执行文件,该用户应该是 Administrators
组的成员。
从存档中提取所有文件。Windows Explorer 中的 Extraction Wizard 足以完成此任务。(如果您使用不同的存档程序,请确保它从存档中提取所有文件和目录,并保留存档的目录结构。)当您被询问目标目录时,输入 C:\
,这将导致 Extraction Wizard 将存档提取到目录 C:\mysql-cluster-gpl-
中。将该目录重命名为 ver
-winarch
C:\mysql
。
可以将 NDB 集群二进制文件安装到其他目录,而不是 C:\mysql\bin
;但是,如果您这样做了,那么您必须相应地修改本过程中的路径。特别是,如果 MySQL 服务器(SQL 节点)二进制文件安装到其他位置,而不是 C:\mysql
或 C:\Program Files\MySQL\MySQL Server 8.3
,或者 SQL 节点的数据目录位于其他位置,而不是 C:\mysql\data
或 C:\Program Files\MySQL\MySQL Server 8.3\data
,那么您必须在命令行上或在 my.ini
或 my.cnf
文件中添加额外的配置选项以启动 SQL 节点。有关在非标准位置配置 MySQL 服务器的更多信息,请参阅 第 2.3.3 节,“配置:手动”。
要使 MySQL 服务器作为 NDB 集群的一部分运行,它必须使用选项 --ndbcluster
和 --ndb-connectstring
启动。虽然您可以在命令行上指定这些选项,但通常更方便地将它们放在选项文件中。为此,创建一个新的文本文件在 Notepad 或其他文本编辑器中。将以下配置信息输入到该文件中:
[mysqld]
# Options for mysqld process:
ndbcluster # run NDB storage engine
ndb-connectstring=198.51.100.10 # location of management server
您可以添加其他选项,用于该 MySQL 服务器(见 第 2.3.3.2 节,“创建选项文件”),但该文件至少必须包含这些选项。将该文件保存为 C:\mysql\my.ini
。这将完成 SQL 节点的安装和设置。
数据节点。 在 Windows 主机上,NDB 集群数据节点只需要一个可执行文件,即 ndbd.exe 或 ndbmtd.exe。在本例中,我们假设您使用 ndbd.exe,但相同的说明也适用于使用 ndbmtd.exe。在每台计算机上,您希望运行数据节点(具有 IP 地址 198.51.100.30 和 198.51.100.40 的计算机),创建目录 C:\mysql
、C:\mysql\bin
和 C:\mysql\cluster-data
;然后,在下载和提取 no-install
存档的计算机上,定位 ndbd.exe
在 C:\mysql\bin
目录中。将该文件复制到每个数据节点主机的 C:\mysql\bin
目录中。
要作为 NDB 集群的一部分,每个数据节点必须提供管理服务器的地址或主机名。您可以在命令行上使用 --ndb-connectstring
或 -c
选项启动每个数据节点进程时提供该信息。但是,通常更preferable 将该信息放入选项文件中。为此,创建一个新的文本文件在 Notepad 或其他文本编辑器中,并输入以下文本:
[mysql_cluster]
# Options for data node process:
ndb-connectstring=198.51.100.10 # location of management server
将该文件保存为 C:\mysql\my.ini
在数据节点主机上。创建另一个文本文件,包含相同的信息,并将其保存为 C:mysql\my.ini
在第二个数据节点主机上,或者从第一个数据节点主机复制 my.ini 文件到第二个数据节点主机,确保将其放置在第二个数据节点的 C:\mysql
目录中。现在,两个数据节点主机都准备好用于 NDB 集群,这只剩下管理节点需要安装和配置。
管理节点。 在用于托管 NDB 集群管理节点的计算机上,唯一需要的可执行程序是管理服务器程序 ndb_mgmd.exe。然而,为了管理 NDB 集群一旦启动,您也应该在同一台机器上安装 NDB 集群管理客户端程序 ndb_mgm.exe。定位这两个程序在下载和提取 no-install
存档的机器上;这应该是目录 C:\mysql\bin
在 SQL 节点主机上。创建目录 C:\mysql\bin
在具有 IP 地址 198.51.100.10 的计算机上,然后将这两个程序复制到该目录中。
现在,您应该创建两个配置文件供 ndb_mgmd.exe
使用:
-
一个本地配置文件,提供管理节点本身的配置数据。通常,该文件只需要提供 NDB 集群全局配置文件的位置(见 item 2)。
要创建该文件,启动一个新的文本文件在 Notepad 或其他文本编辑器中,并输入以下信息:
[mysql_cluster] # Options for management node process config-file=C:/mysql/bin/config.ini
将该文件保存为文本文件
C:\mysql\bin\my.ini
。 -
一个全局配置文件,从中管理节点可以获取 NDB 集群的配置信息。至少,该文件必须包含 NDB 集群中的每个节点的部分,以及管理节点和所有数据节点的 IP 地址或主机名 (
HostName
配置参数)。也建议包括以下附加信息:-
SQL 节点的 IP 地址或主机名
-
每个数据节点的数据内存和索引内存分配 (
DataMemory
和IndexMemory
配置参数) -
碎片副本的数量,使用
NoOfReplicas
配置参数(见 第 25.2.2 节,“NDB 集群节点、节点组、碎片副本和分区”) -
每个数据节点存储其数据和日志文件的目录,以及管理节点保持其日志文件的目录(在这两种情况下,都是
DataDir
配置参数)
使用文本编辑器(如记事本)创建一个新的文本文件,并输入以下信息:
[ndbd default] # Options affecting ndbd processes on all data nodes: NoOfReplicas=2 # Number of fragment replicas DataDir=C:/mysql/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=198.51.100.10 # 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": # (one [ndbd] section per data node) HostName=198.51.100.30 # Hostname or IP address [ndbd] # Options for data node "B": HostName=198.51.100.40 # Hostname or IP address [mysqld] # SQL node options: HostName=198.51.100.20 # Hostname or IP address
将该文件保存为文本文件
C:\mysql\bin\config.ini
。 -
在 Windows 上使用 NDB Cluster 时,不能在程序选项或配置文件中使用单个反斜杠字符 (\
) 指定目录路径。相反,您必须使用双反斜杠 (\\
) 转义每个反斜杠字符,或者将反斜杠替换为正斜杠字符 (/
)。例如,来自 [ndb_mgmd]
部分的以下行 config.ini
文件不起作用:
DataDir=C:\mysql\bin\cluster-logs
相反,您可以使用以下任一选项:
DataDir=C:\\mysql\\bin\\cluster-logs # Escaped backslashes
DataDir=C:/mysql/bin/cluster-logs # Forward slashes
出于简洁和可读性考虑,我们建议在 Windows 上使用 NDB Cluster 程序选项和配置文件中的目录路径时使用正斜杠。