#### 23.3.1.4 在 Linux 上从源代码构建 NDB 集群

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

本节提供有关在 Linux 和其他类 Unix 平台上编译 NDB Cluster 的信息。从源代码构建 NDB Cluster 类似于构建标准 MySQL 服务器，尽管它在此处讨论的几个关键方面有所不同。有关从源代码构建 MySQL 的一般信息，请参阅[第 2.9 节，“从源代码安装 MySQL”](source-installation.html).有关在 Windows 平台上编译 NDB Cluster 的信息，请参阅[第 23.3.2.2 节，“在 Windows 上从源代码编译和安装 NDB Cluster”](mysql-cluster-install-windows-source.html).

构建 MySQL NDB Cluster 8.0 需要使用 MySQL Server 8.0 源。这些可从 MySQL 下载页面获得，网址为<https://dev.mysql.com/downloads/>.归档的源文件的名称应类似于`mysql-8.0.28.tar.gz`.您也可以从 GitHub 获取源代码：<https://github.com/mysql/mysql-server>.

笔记

在以前的版本中，不支持从标准 MySQL 服务器源构建 NDB Cluster。在 MySQL 8.0 和 NDB Cluster 8.0 中，情况不再如此——*两种产品现在都是从相同的来源构建的*.

这[`WITH_NDBCLUSTER`](source-configuration-options.html#option_cmake_with_ndbcluster)选项**制作**导致构建管理节点、数据节点和其他 NDB Cluster 程序的二进制文件；它也会导致[**mysqld**](mysqld.html)编译[`新开发银行`](mysql-cluster.html)存储引擎支持。此选项（或其别名之一`WITH_NDBCLUSTER_STORAGE_ENGINE`和`WITH_PLUGIN_NDBCLUSTER`) 在构建 NDB Cluster 时是必需的。

重要的

这[`WITH_NDB_JAVA`](source-configuration-options.html#option_cmake_with_ndb_java)选项默认启用。这意味着，默认情况下，如果**制作**在您的系统上找不到 Java 的位置，配置过程失败；如果您不希望启用 Java 和 ClusterJ 支持，则必须通过使用以下方式配置构建来明确指出这一点`-DWITH_NDB_JAVA=OFF`.采用[`WITH_CLASSPATH`](source-configuration-options.html#option_cmake_with_classpath)如果需要，提供 Java 类路径。

有关更多信息**制作**特定于构建 NDB Cluster 的选项，请参阅[编译 NDB Cluster 的选项](source-configuration-options.html#cmake-mysql-cluster-options).

跑完之后**制作 && 制作安装**（或您的系统的等价物），结果类似于将预编译的二进制文件解压缩到同一位置所获得的结果。

**管理节点。**从源代码构建并运行默认值时**进行安装**，管理服务器和管理客户端二进制文件（[**数据库\_管理**](mysql-cluster-programs-ndb-mgmd.html)和[**数据库\_毫克**](mysql-cluster-programs-ndb-mgm.html)) 可以在`/usr/local/mysql/bin`.仅有的[**数据库\_管理**](mysql-cluster-programs-ndb-mgmd.html)需要存在于管理节点主机上；但是，拥有[**数据库\_毫克**](mysql-cluster-programs-ndb-mgm.html)存在于同一主机上。这些可执行文件都不需要主机文件系统上的特定位置。

**数据节点。**数据节点主机上唯一需要的可执行文件是数据节点二进制文件[**ndbd**](mysql-cluster-programs-ndbd.html)要么[**ndbmtd**](mysql-cluster-programs-ndbmtd.html).([**mysqld**](mysqld.html)，例如，不必存在于主机上。）默认情况下，从源代码构建时，此文件放置在目录中`/usr/local/mysql/bin`.对于在多个数据节点主机上安装，仅[**ndbd**](mysql-cluster-programs-ndbd.html)要么[**ndbmtd**](mysql-cluster-programs-ndbmtd.html)需要复制到其他主机或机器。（这假设所有数据节点主机使用相同的架构和操作系统；否则您可能需要为每个不同的平台单独编译。）数据节点二进制文件不需要位于主机文件系统上的任何特定位置，只要位置是已知的。

从源代码编译 NDB Cluster 时，构建多线程数据节点二进制文件不需要特殊选项。配置构建[`新开发银行`](mysql-cluster.html)存储引擎支持原因[**ndbmtd**](mysql-cluster-programs-ndbmtd.html)自动构建；**进行安装**将[**ndbmtd**](mysql-cluster-programs-ndbmtd.html)安装中的二进制`斌`目录连同[**mysqld**](mysqld.html),[**ndbd**](mysql-cluster-programs-ndbd.html)， 和[**数据库\_毫克**](mysql-cluster-programs-ndb-mgm.html).

**SQL 节点。**如果你编译 MySQL 时支持集群，并执行默认安装（使用**进行安装**作为系统`根`用户），[**mysqld**](mysqld.html)被放置在`/usr/local/mysql/bin`.按照给出的步骤[第 2.9 节，“从源代码安装 MySQL”](source-installation.html)使[**mysqld**](mysqld.html)准备启用。如果要运行多个 SQL 节点，可以使用相同的副本[**mysqld**](mysqld.html)在多台机器上的可执行文件及其相关的支持文件。最简单的方法是复制整个`/usr/local/mysql`目录以及其中包含的所有目录和文件到其他 SQL 节点主机或主机，然后重复从[第 2.9 节，“从源代码安装 MySQL”](source-installation.html)在每台机器上。如果您使用非默认值配置构建`字首`选项，您必须相应地调整目录。

在[第 23.3.3 节，“NDB 集群的初始配置”](mysql-cluster-install-configuration.html)，我们为示例 NDB Cluster 中的所有节点创建配置文件。
