#### 23.3.2.1 从二进制版本在 Windows 上安装 NDB Cluster

[](<>)[](<>)

本节介绍了在 Windows 上使用 Oracle 提供的二进制“免安装”NDB Cluster 版本的 NDB Cluster 的基本安装，使用本节开头概述的相同 4 节点设置（请参阅[第 23.3 节，“NDB 集群安装”](mysql-cluster-installation.html))，如下表所示：

[](<>)

**表 23.7 示例集群中节点的网络地址**

| 节点 | IP地址 |
| --- | ---- |
| 管理节点（**管理**) | 198.51.100.10 |
| SQL 节点 ([**mysqld**](mysqld.html)) | 198.51.100.20 |
| 数据节点“A”（[**ndbd**](mysql-cluster-programs-ndbd.html)) | 198.51.100.30 |
| 数据节点“B”（[**ndbd**](mysql-cluster-programs-ndbd.html)) | 198.51.100.40 |

与其他平台一样，运行 SQL 节点的 NDB Cluster 主机必须在其上安装 MySQL 服务器二进制文件 ([**mysqld.exe**](mysqld.html)）。您还应该有 MySQL 客户端（[**mysql.exe**](mysql.html)) 在此主机上。对于管理节点和数据节点，不需要安装 MySQL Server 二进制文件；但是，每个管理节点都需要管理服务器守护程序（[**数据库\_管理程序**](mysql-cluster-programs-ndb-mgmd.html));每个数据节点都需要数据节点守护进程（[**ndbd.exe**](mysql-cluster-programs-ndbd.html)要么[**ndbmtd.exe**](mysql-cluster-programs-ndbmtd.html)）。对于这个例子，我们参考[**ndbd.exe**](mysql-cluster-programs-ndbd.html)作为数据节点可执行文件，但您可以安装[**ndbmtd.exe**](mysql-cluster-programs-ndbmtd.html)，这个程序的多线程版本，相反，以完全相同的方式。您还应该安装管理客户端（[**数据库\_管理程序**](mysql-cluster-programs-ndb-mgm.html)) 在管理服务器主机上。本节介绍为每种类型的 NDB Cluster 节点安装正确的 Windows 二进制文件所需的步骤。

笔记

与其他 Windows 程序一样，NDB Cluster 可执行文件以`。EXE文件`文件扩展名。但是，没有必要包括`。EXE文件`从命令行调用这些程序时的扩展名。因此，我们通常在本文档中将这些程序简单地称为[**mysqld**](mysqld.html),[**mysql**](mysql.html),[**数据库\_管理**](mysql-cluster-programs-ndb-mgmd.html)， 等等。您应该了解，无论我们是否（例如）提及[**mysqld**](mysqld.html)要么[**mysqld.exe**](mysqld.html), 任何一个名字的意思都是一样的（MySQL 服务器程序）。

使用 Oracles 设置 NDB 集群`免安装`二进制文件，安装过程的第一步是从下载最新的 NDB Cluster Windows ZIP 二进制存档<https://dev.mysql.com/downloads/cluster/>.这个档案的文件名是`mysql-集群-gpl-*`版本`*-赢*`拱`*。压缩`， 在哪里*`版本`*是个`新开发银行`存储引擎版本（如`8.0.28`）， 和*`拱`*是架构（`32`对于 32 位二进制文​​件，以及`64`对于 64 位二进制文​​件）。例如，用于 64 位 Windows 系统的 NDB Cluster 8.0.28 存档被命名为`mysql-cluster-gpl-8.0.28-win64.zip`.

您可以在 32 位和 64 位版本的 Windows 上运行 32 位 NDB Cluster 二进制文件；但是，64 位 NDB Cluster 二进制文件只能在 64 位版本的 Windows 上使用。如果您在具有 64 位 CPU 的计算机上使用 32 位版本的 Windows，则必须使用 32 位 NDB Cluster 二进制文件。

为了尽量减少需要从 Internet 下载或在机器之间复制的文件数量，我们从您打算运行 SQL 节点的计算机开始。

**SQL 节点。**我们假设您已在目录中放置了存档的副本`C:\文档和设置\*`用户名`*\我的文档\下载`在 IP 地址为 198.51.100.20 的计算机上，其中*`用户名`*是当前用户的名字。（您可以使用`回声 %USERNAME%`在命令行上。）要将 NDB Cluster 可执行文件作为 Windows 服务安装和运行，此用户应该是`管理员`团体。

从存档中提取所有文件。与 Windows 资源管理器集成的提取向导足以完成此任务。（如果您使用不同的存档程序，请确保它从存档中提取所有文件和目录，并保留存档的目录结构。）当您被要求提供目标目录时，输入`C：\`，这会导致提取向导将存档提取到目录`C:\mysql-cluster-gpl-*`版本`*-赢*`拱`*`.将此目录重命名为`C:\mysql`.

可以将 NDB Cluster 二进制文件安装到除`C:\mysql\bin`;但是，如果这样做，则必须相应地修改此过程中显示的路径。特别是，如果 MySQL 服务器（SQL 节点）二进制文件安装到的位置不是`C:\mysql`要么`C:\Program Files\MySQL\MySQL 服务器 8.0`，或者如果 SQL 节点的数据目录位于`C:\mysql\数据`要么`C:\Program Files\MySQL\MySQL 服务器 8.0\data`, 额外的配置选项必须在命令行中使用或添加到`我的.ini`要么`我的.cnf`启动 SQL 节点时的文件。有关将 MySQL 服务器配置为在非标准位置运行的更多信息，请参阅[第 2.3.4 节，“在 Microsoft Windows 上使用`没有安装`压缩档案”](windows-install-archive.html).

对于具有 NDB Cluster 支持的 MySQL 服务器作为 NDB Cluster 的一部分运行，它必须使用选项启动[`--ndbcluster`](mysql-cluster-options-variables.html#option_mysqld_ndbcluster)和[`--ndb-连接字符串`](mysql-cluster-options-variables.html#option_mysqld_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.4.2 节，“创建选项文件”](windows-create-option-file.html))，但文件必须至少包含显示的选项。将此文件另存为`C:\mysql\my.ini`.这样就完成了 SQL 节点的安装和设置。

**数据节点。**Windows 主机上的 NDB Cluster 数据节点只需要一个可执行文件，其中之一是[**ndbd.exe**](mysql-cluster-programs-ndbd.html)要么[**ndbmtd.exe**](mysql-cluster-programs-ndbmtd.html).对于此示例，我们假设您正在使用[**ndbd.exe**](mysql-cluster-programs-ndbd.html), 但相同的说明在使用时适用[**ndbmtd.exe**](mysql-cluster-programs-ndbmtd.html).在您希望运行数据节点的每台计算机（IP 地址为 198.51.100.30 和 198.51.100.40 的计算机）上，创建目录`C:\mysql`,`C:\mysql\bin`， 和`C:\mysql\集群数据`;然后，在您下载并解压缩的计算机上`免安装`存档，定位`ndbd.exe`在里面`C:\mysql\bin`目录。将此文件复制到`C:\mysql\bin`两个数据节点主机上的目录。

要作为 NDB Cluster 的一部分，必须为每个数据节点提供管理服务器的地址或主机名。您可以使用命令行在命令行上提供此信息[`--ndb-连接字符串`](mysql-cluster-programs-ndb-config.html#option_ndb_config_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 Cluster 管理节点的计算机上唯一需要的可执行程序是管理服务器程序[**数据库\_管理程序**](mysql-cluster-programs-ndb-mgmd.html).但是，为了在 NDB Cluster 启动后对其进行管理，您还应该安装 NDB Cluster 管理客户端程序[**数据库\_管理程序**](mysql-cluster-programs-ndb-mgm.html)与管理服务器在同一台机器上。在您下载并解压文件的机器上找到这两个程序`免安装`档案;这应该是目录`C:\mysql\bin`在 SQL 节点主机上。创建目录`C:\mysql\bin`在 IP 地址为 198.51.100.10 的计算机上，然后将两个程序复制到此目录。

您现在应该创建两个配置文件以供使用`ndb_mgmd.exe`：

1.  提供特定于管理节点本身的配置数据的本地配置文件。通常，此文件只需要提供 NDB Cluster 全局配置文件的位置（请参阅第 2 项）。

    要创建此文件，请在记事本或其他文本编辑器中新建一个文本文件，然后输入以下信息：

    ```
    [mysql_cluster]
    # Options for management node process
    config-file=C:/mysql/bin/config.ini
    ```

    将此文件另存为文本文件`C:\mysql\bin\my.ini`.

2.  一个全局配置文件，管理节点可以从中获取管理 NDB Cluster 整体的配置信息。此文件至少必须包含 NDB Cluster 中每个节点的部分，以及管理节点和所有数据节点的 IP 地址或主机名 (`主机名`配置参数）。还建议包括以下附加信息：

    -   任何 SQL 节点的 IP 地址或主机名

    -   分配给每个数据节点的数据内存和索引内存（[`数据存储器`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-datamemory)和[`索引内存`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-indexmemory)配置参数）

    -   片段副本的数量，使用[`副本数`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-noofreplicas)配置参数（见[第 23.2.2 节，“NDB 集群节点、节点组、片段副本和分区”](mysql-cluster-nodes-groups.html))

    -   每个数据节点存储其数据和日志文件的目录，以及管理节点保存其日志文件的目录（在这两种情况下，[`数据目录`](mysql-cluster-ndbd-definition.html#ndbparam-ndbd-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]`NDB Cluster 的一部分`配置文件`文件不起作用：

```
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 程序选项和配置文件中使用的目录路径中使用正斜杠。
