本节介绍使用 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)。本节介绍为每种类型的 NDB 集群节点安装正确的 Windows 二进制文件所需的步骤。
与其他 Windows 程序一样,NDB 集群可执行文件的名称带有 .exe
文件扩展名。但是,从命令行调用这些程序时,不需要包含 .exe
扩展名。因此,在本文档中,我们通常将这些程序简称为 mysqld、mysql、ndb_mgmd 等。您应该明白,无论我们指的是(例如)mysqld 还是 mysqld.exe,这两个名称的含义相同(都是 MySQL 服务器程序)。
要使用 Oracles 的 no-install
二进制文件设置 NDB 集群,安装过程的第一步是从 https://dev.mysqlserver.cn/downloads/cluster/ 下载最新的 NDB 集群 Windows ZIP 二进制存档。此存档的文件名为 mysql-cluster-gpl-
,其中 ver
-winarch
.zipver
是 NDB
存储引擎版本(例如 8.4.0
),arch
是体系结构(32
表示 32 位二进制文件,64
表示 64 位二进制文件)。例如,适用于 64 位 Windows 系统的 NDB 集群 8.4.0 存档名为 mysql-cluster-gpl-8.4.0-win64.zip
。
您可以在 32 位和 64 位版本的 Windows 上运行 32 位 NDB 集群二进制文件;但是,64 位 NDB 集群二进制文件只能在 64 位版本的 Windows 上使用。如果您在具有 64 位 CPU 的计算机上使用 32 位版本的 Windows,则必须使用 32 位 NDB 集群二进制文件。
为了最大程度地减少需要从 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
以外的位置,则在启动 SQL 节点时,必须在命令行上使用额外的配置选项,或者将这些选项添加到 my.ini
或 my.cnf
文件中。有关在非标准位置配置 MySQL 服务器的更多信息,请参阅 第 2.3.3 节,“配置:手动”。
为了使支持 NDB 集群的 MySQL 服务器作为 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 节点的安装和设置完成。
数据节点。 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
存档的计算机上,在 C:\mysql\bin
目录中找到 ndbd.exe
。将此文件复制到两个数据节点主机上的 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 集群管理客户端程序 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 集群中每个节点的部分,以及管理节点和所有数据节点的 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 集群使用的程序选项或配置文件中的目录路径时,不能使用单个反斜杠字符 (\
)。 而是必须使用第二个反斜杠 (\\
) 转义每个反斜杠字符,或者将反斜杠字符替换为正斜杠字符 (/
)。 例如,NDB 集群 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 集群程序选项和配置文件中使用的目录路径中使用正斜杠。