### 23.4.3 NDB 集群配置文件

[23.4.3.1 NDB 集群配置：基本示例](mysql-cluster-config-example.html)
[23.4.3.2 NDB Cluster 的推荐启动配置](mysql-cluster-config-starting.html)
[23.4.3.3 NDB 集群连接字符串](mysql-cluster-connection-strings.html)
[23.4.3.4 在 NDB 集群中定义计算机](mysql-cluster-computer-definition.html)
[23.4.3.5 定义 NDB 集群管理服务器](mysql-cluster-mgm-definition.html)
[23.4.3.6 定义 NDB Cluster 数据节点](mysql-cluster-ndbd-definition.html)
[23.4.3.7 在 NDB 集群中定义 SQL 和其他 API 节点](mysql-cluster-api-definition.html)
[23.4.3.8 定义系统](mysql-cluster-system-definition.html)
[23.4.3.9 NDB Cluster 的 MySQL 服务器选项和变量](mysql-cluster-options-variables.html)
[23.4.3.10 NDB 集群 TCP/IP 连接](mysql-cluster-tcp-definition.html)
[23.4.3.11 NDB Cluster TCP/IP 连接使用直接连接](mysql-cluster-tcp-definition-direct.html)
[23.4.3.12 NDB 集群共享内存连接](mysql-cluster-shm-definition.html)
[23.4.3.13 数据节点内存管理](mysql-cluster-data-node-memory-management.html)
[23.4.3.14 配置 NDB Cluster 发送缓冲区参数](mysql-cluster-config-send-buffers.html)

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

配置 NDB Cluster 需要使用两个文件：

-   `我的.cnf`：指定所有 NDB Cluster 可执行文件的选项。这个文件，你应该在以前的 MySQL 工作中熟悉，必须可以被集群中运行的每个可执行文件访问。

-   `配置文件`：这个文件，有时称为全局配置文件，仅由 NDB Cluster 管理服务器读取，然后将其中包含的信息分发给参与集群的所有进程。`配置文件`包含集群中涉及的每个节点的描述。这包括数据节点的配置参数和集群中所有节点之间连接的配置参数。有关此文件中可能出现的部分的快速参考，以及可以在每个部分中放置哪些类型的配置参数，请参阅[的部分`配置文件`文件](mysql-cluster-config-example.html#mysql-cluster-config-ini-sections).

**缓存配置数据。**  `新开发银行`使用有状态配置。管理服务器不是每次重启都读取全局配置文件，而是在管理服务器第一次启动时缓存配置，之后只有以下条件之一为真时才读取全局配置文件：

-   **使用 --initial 选项启动管理服务器。**什么时候[`- 最初的`](mysql-cluster-programs-ndb-mgmd.html#option_ndb_mgmd_initial)使用时，重新读取全局配置文件，删除任何现有的缓存文件，并且管理服务器创建新的配置缓存。

-   **使用 --reload 选项启动管理服务器。**这[`--重新加载`](mysql-cluster-programs-ndb-mgmd.html#option_ndb_mgmd_reload)选项使管理服务器将其缓存与全局配置文件进行比较。如果它们不同，管理服务器会创建一个新的配置缓存；任何现有的配置缓存都会被保留，但不会被使用。如果管理服务器的缓存和全局配置文件包含相同的配置数据，则使用现有的缓存，不创建新的缓存。

-   **使用 --config-cache=FALSE 启动管理服务器。**这禁用[`--配置缓存`](mysql-cluster-programs-ndb-mgmd.html#option_ndb_mgmd_config-cache)（默认启用），可用于强制管理服务器完全绕过配置缓存。在这种情况下，管理服务器会忽略任何可能存在的配置文件，总是从`配置文件`文件。

-   **未找到配置缓存。**在这种情况下，管理服务器读取全局配置文件并创建一个缓存，其中包含与文件中相同的配置数据。

**配置缓存文件。**默认情况下，管理服务器在名为的目录中创建配置缓存文件`mysql-集群`在 MySQL 安装目录中。（如果您在 Unix 系统上从源代码构建 NDB Cluster，则默认位置是`/usr/local/mysql-集群`.) 这可以在运行时通过启动管理服务器来覆盖[`--configdir`](mysql-cluster-programs-ndb-mgmd.html#option_ndb_mgmd_configdir)选项。配置缓存文件是根据模式命名的二进制文件`ndb_*`node_id`*_config.bin.*`seq_id`*`， 在哪里*`node_id`*是集群中管理服务器的节点 ID，并且*`seq_id`*是一个缓存标识符。缓存文件使用顺序编号*`seq_id`*，按照它们的创建顺序。管理服务器使用由管理服务器确定的最新缓存文件*`seq_id`*.

笔记

可以通过删除后面的配置缓存文件或重命名早期的缓存文件使其具有更高的配置回滚到以前的配置*`seq_id`*.但是，由于配置缓存文件是以二进制格式编写的，因此您不应尝试手动编辑它们的内容。

有关更多信息[`--configdir`](mysql-cluster-programs-ndb-mgmd.html#option_ndb_mgmd_configdir),[`--配置缓存`](mysql-cluster-programs-ndb-mgmd.html#option_ndb_mgmd_config-cache),[`- 最初的`](mysql-cluster-programs-ndb-mgmd.html#option_ndb_mgmd_initial)， 和[`--重新加载`](mysql-cluster-programs-ndb-mgmd.html#option_ndb_mgmd_reload)NDB Cluster 管理服务器的选项，请参阅[第 23.5.4 节，“ndb_mgmd — NDB 集群管理服务器守护进程”](mysql-cluster-programs-ndb-mgmd.html).

我们不断改进 NDB Cluster 配置并尝试简化此过程。尽管我们努力保持向后兼容性，但有时可能会引入不兼容的更改。在这种情况下，如果更改不向后兼容，我们会尝试让 NDB Cluster 用户提前知道。如果您发现这样的更改并且我们没有记录，请使用给出的说明在 MySQL 错误数据库中报告它[第 1.6 节，“如何报告错误或问题”](bug-reports.html).
