本节描述了使用 Oracle 提供的二进制 “免安装” NDB Cluster 版本在 Windows 上安装 NDB Cluster 的基本方法,使用本节开头概述的相同 4 节点设置(参见 第 25.3 节,“NDB Cluster 安装”),如以下表格所示
与其他平台一样,运行 SQL 节点的 NDB Cluster 主机必须安装 MySQL 服务器二进制文件 (mysqld.exe)。您还应该在该主机上拥有 MySQL 客户端 (mysql.exe)。对于管理节点和数据节点,不必安装 MySQL 服务器二进制文件;但是,每个管理节点都需要管理服务器守护程序 (ndb_mgmd.exe);每个数据节点都需要数据节点守护程序 (ndbd.exe 或 ndbmtd.exe)。在本示例中,我们将 ndbd.exe 称为数据节点可执行文件,但您可以安装 ndbmtd.exe,该程序的多线程版本,以完全相同的方式。您还应该在管理服务器主机上安装管理客户端 (ndb_mgm.exe)。本节介绍安装每个类型 NDB Cluster 节点所需的正确 Windows 二进制文件所需的步骤。
与其他 Windows 程序一样,NDB Cluster 可执行文件使用 .exe
文件扩展名命名。但是,从命令行调用这些程序时,不必包含 .exe
扩展名。因此,我们通常在这份文档中简单地将这些程序称为 mysqld、mysql、ndb_mgmd 等。您应该理解,无论我们指的是 mysqld 还是 mysqld.exe,这两个名称都表示相同的意思(MySQL 服务器程序)。
为了使用 Oracle 的 免安装
二进制文件设置 NDB Cluster,安装过程的第一步是从 https://dev.mysqlserver.cn/downloads/cluster/ 下载最新的 NDB Cluster Windows ZIP 二进制存档。此存档的文件名为 mysql-cluster-gpl-
,其中 ver
-winarch
.zipver
是 NDB
存储引擎版本(如 9.0.0
),arch
是体系结构 (32
代表 32 位二进制文件,64
代表 64 位二进制文件)。例如,适用于 64 位 Windows 系统的 NDB Cluster 9.0.0 存档名为 mysql-cluster-gpl-9.0.0-win64.zip
。
您可以在 32 位和 64 位版本的 Windows 上运行 32 位 NDB Cluster 二进制文件;但是,64 位 NDB Cluster 二进制文件只能在 64 位版本的 Windows 上使用。如果您在具有 64 位 CPU 的计算机上使用 32 位版本的 Windows,那么您必须使用 32 位 NDB Cluster 二进制文件。
为了最大程度地减少从互联网下载或在机器之间复制的文件数量,我们从您打算运行 SQL 节点的计算机开始。
SQL 节点。 我们假设您已将存档的副本放置在 IP 地址为 198.51.100.20 的计算机上的 C:\Documents and Settings\
目录中,其中 username
\My Documents\Downloadsusername
是当前用户的名称。(您可以在命令行中使用 ECHO %USERNAME%
获取此名称。)为了将 NDB Cluster 可执行文件作为 Windows 服务安装和运行,此用户应该是 Administrators
组的成员。
从存档中提取所有文件。Windows 资源管理器中集成的提取向导足以完成此任务。(如果您使用其他存档程序,请确保它从存档中提取所有文件和目录,并保留存档的目录结构。)当系统询问您目标目录时,请输入 C:\
,这会导致提取向导将存档提取到 C:\mysql-cluster-gpl-
目录中。将此目录重命名为 ver
-winarch
C:\mysql
。
可以将 NDB Cluster 二进制文件安装到 C:\mysql\bin
以外的目录中;但是,如果您这样做,则必须相应地修改本过程显示的路径。特别是,如果 MySQL 服务器(SQL 节点)二进制文件安装到 C:\mysql
或 C:\Program Files\MySQL\MySQL Server 9.0
以外的位置,或者如果 SQL 节点的数据库目录位于 C:\mysql\data
或 C:\Program Files\MySQL\MySQL Server 9.0\data
以外的位置,则在启动 SQL 节点时,必须在命令行上指定或添加到 my.ini
或 my.cnf
文件中额外的配置选项。有关配置在非标准位置运行的 MySQL 服务器的更多信息,请参见 第 2.3.3 节,“配置:手动”。
为了使具有 NDB Cluster 支持的 MySQL 服务器作为 NDB Cluster 的一部分运行,必须使用 --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 Cluster 数据节点只需要一个可执行文件,可以是 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
;然后,在您下载并解压缩 免安装
存档的计算机上,在 C:\mysql\bin
目录中找到 ndbd.exe
。将此文件复制到两个数据节点主机上的 C:\mysql\bin
目录中。
为了作为 NDB Cluster 的一部分运行,每个数据节点都必须获取管理服务器的地址或主机名。您可以在启动每个数据节点进程时,使用命令行上的 --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 Cluster,只剩下管理节点需要安装和配置。
管理节点。 用于托管 NDB Cluster 管理节点的计算机上唯一需要的可执行程序是管理服务器程序 ndb_mgmd.exe。但是,为了在启动 NDB Cluster 后管理它,您还应该在与管理服务器相同的计算机上安装 NDB Cluster 管理客户端程序 ndb_mgm.exe。在您下载并解压缩 免安装
存档的计算机上找到这两个程序;这应该是 SQL 节点主机上的 C:\mysql\bin
目录。在 IP 地址为 198.51.100.10 的计算机上创建目录 C:\mysql\bin
,然后将这两个程序复制到该目录中。
您现在应该为 ndb_mgmd.exe
创建两个配置文件
一个本地配置文件,用于提供特定于管理节点本身的配置数据。通常,此文件只需要提供 NDB Cluster 全局配置文件的位置(参见第 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
配置参数)
使用文本编辑器(例如 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
。
在指定 NDB 集群在 Windows 上使用的程序选项或配置文件中的目录路径时,不能使用单个反斜杠字符 (\
)。相反,您必须使用第二个反斜杠 (\\
) 转义每个反斜杠字符,或将反斜杠替换为正斜杠字符 (/
)。例如,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 集群程序选项和配置文件的目录路径中使用正斜杠。