25.3.2.1 Windows 上从二进制发行版安装 NDB 集群
本节描述了使用 Oracle 提供的无需安装的 NDB 集群二进制文件在 Windows 上进行基本安装,使用与本节开始部分中相同的 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)在管理服务器主机上。该部分涵盖了安装每种类型NDB集群节点所需的正确Windows二进制文件步骤。
像其他 Windows 程序一样,NDB 集群可执行文件以.exe
文件扩展名命名。然而,在从命令行invoke这些程序时,不需要包括.exe
扩展名。因此,我们在这份文档中通常简称这些程序为mysqld、mysql、ndb_mgmd等。您应该理解,即使我们简称(例如)为mysqld或mysqld.exe,这两个名称都表示同一个意思(MySQL 服务器程序)。
要使用Oracle的no-install
-binaries设置NDB集群,首先需要从https://dev.mysql.com/downloads/cluster/下载最新的NDB集群Windows ZIP归档文件。该归档文件的名称为mysql-cluster-gpl-
ver
-winarch
.zipver
是NDB存储引擎版本(例如8.4.0
),arch
是架构(32
为32位-binaries,64
为64位-binaries)。例如,NDB集群8.4.0归档文件对于64位Windows系统的名称为mysql-cluster-gpl-8.4.0-win64.zip
.
您可以在32位和64位版本的Windows上运行32位NDB集群-binaries;然而,64位NDB集群-binaries只能在64位版本的Windows上使用。如果您使用的是32位版本的Windows,并且计算机具有64位CPU,那么必须使用32位NDB集群-binaries。
为了减少从Internet下载或在机器之间复制文件的数量,我们将从您计划运行SQL节点的计算机开始。
SQL节点。 我们假设您已经将存档副本置于计算机IP地址为198.51.100.20的目录中,路径为C:\Documents and Settings\
,其中username
\My Documents\Downloadsusername
是当前用户的名称。 (您可以使用命令行中的ECHO %USERNAME%
获取该名称。) 要将NDB集群可执行文件安装并作为Windows服务运行,这个用户应该是Administrators
组的成员。
从存档中提取所有文件。 Windows资源管理器中的提取向导足以完成此任务。 (如果您使用的是不同的存档程序,请确保它可以提取所有文件和目录,并且保留存档的目录结构。) 当您被询问目标目录时,输入C:\
,这将导致提取向导将存档提取到目录C:\mysql-cluster-gpl-
。 将该目录重命名为ver
-winarch
C:\mysql
。
可以将 NDB 集群二进制文件安装到除C:\mysql\bin
之外的目录;然而,如果您这样做,您必须根据该过程修改路径。在特定情况下,如果 MySQL 服务器(SQL 节点)二进制文件安装在除C:\mysql
或C:\Program Files\MySQL\MySQL Server 8.4
之外的目录,或者 SQL 节点的数据目录在除C:\mysql\data
或C:\Program Files\MySQL\MySQL Server 8.4\data
之外的目录,您必须在命令行中使用额外的配置选项或将其添加到my.ini
或my.cnf
文件中,以启动 SQL 节点。有关在非标准位置运行 MySQL 服务器的更多信息,请见第2.3.3节,“配置:手动”。
为了使 MySQL 服务器(具有 NDB 集群支持)作为 NDB 集群的一部分运行,它必须使用选项--ndbcluster
和--ndb-connectstring
启动。虽然您可以在命令行中指定这些选项,但通常更方便地将其放置在选项文件中。要做到这点,请创建一个新的文本文件,在记事本或其他文本编辑器中输入以下配置信息:
[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 节点的安装和设置。
数据节点。NDB 集群数据节点在 Windows 主机上只需要单个可执行文件,即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
选项在启动每个数据节点进程时提供这项信息。然而,通常来说,这些信息最好放置在选项文件中。要做到这一点,请创建一个新的文本文件,在记事本或其他文本编辑器中输入以下文本:
[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_mgm.exe。在下载和解压缩 no-install
档案的机器上,找到这两个程序;这应该是 SQL 节点主机上的目录 C:\mysql\bin
。在 IP 地址为 198.51.100.10 的计算机上创建目录 C:\mysql\bin
,然后将两个程序复制到该目录。
现在,您需要创建两个配置文件,以供 ndb_mgmd.exe
使用:
-
一个本地配置文件,为管理节点本身提供特定的配置数据。通常,这个文件只需提供 NDB 集群全局配置文件的位置(见第 2 项)。
创建这个文件,请在记事本或其他文本编辑器中启动一个新的文本文件,然后输入以下信息:
[mysql_cluster] # Options for management node process config-file=C:/mysql/bin/config.ini
将该文件保存为文本文件
C:\mysql\bin\my.ini
。 -
NDB 集群的全局配置文件,从中管理节点可以获取整个 NDB 集群的配置信息。至少,这个文件必须包含每个节点在 NDB 集群中的部分,以及管理节点和所有数据节点的 IP 地址或主机名(
HostName
配置参数)。此外,建议包括以下附加信息:-
每个 SQL 节点的 IP 地址或主机名
-
每个数据节点分配的数据内存和索引内存(
DataMemory
和IndexMemory
配置参数) -
使用
NoOfReplicas
配置参数指定的副本数量(见第 25.2.2 节,“NDB 集群节点、节点组、副本和分区”) -
每个数据节点存储数据和日志文件的目录,以及管理节点存储日志文件的目录(在这两个情况下,
DataDir
配置参数)
使用文本编辑器,如 Notepad,创建一个新的文本文件,并输入以下信息:
[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 上,用于指定目录路径的程序选项或配置文件中不能使用单个反斜杠字符(\
)。相反,您必须将每个反斜杠字符用第二个反斜杠 (\\
).Escape,或者将反斜杠替换为前向斜杠字符 (/
). 例如,以下来自 NDB Cluster config.ini
文件的[ndb_mgmd]
部分的行不起作用:
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 程序选项和配置文件中的目录路径中使用前向斜杠。