23.4.3.1 NDB Cluster 配置:基本示例

要支持 NDB Cluster,您应该更新 my.cnf,如以下示例所示。您还可以在调用可执行文件时在命令行上指定这些参数。

笔记

此处显示的选项不应与config.ini全局配置文件中使用的选项混淆。全局配置选项将在本节后面讨论。

Press CTRL+C to copy
# my.cnf # example additions to my.cnf for NDB Cluster # (valid in MySQL 8.0) # enable ndbcluster storage engine, and provide connection string for # management server host (default port is 1186) [mysqld] ndbcluster ndb-connectstring=ndb_mgmd.mysql.com # provide connection string for management server host (default port: 1186) [ndbd] connect-string=ndb_mgmd.mysql.com # provide connection string for management server host (default port: 1186) [ndb_mgm] connect-string=ndb_mgmd.mysql.com # provide location of cluster configuration file # IMPORTANT: When starting the management server with this option in the # configuration file, the use of --initial or --reload on the command line when # invoking ndb_mgmd is also required. [ndb_mgmd] config-file=/etc/config.ini

(有关连接字符串的更多信息,请参阅 第 23.4.3.3 节,“NDB Cluster 连接字符串”。)

Press CTRL+C to copy
# my.cnf # example additions to my.cnf for NDB Cluster # (works on all versions) # enable ndbcluster storage engine, and provide connection string for management # server host to the default port 1186 [mysqld] ndbcluster ndb-connectstring=ndb_mgmd.mysql.com:1186
重要的

如前所示,一旦您使用文件中的和 参数 启动了mysqld进程 ,您就无法在 没有实际启动集群的情况下执行任何or 语句。否则,这些语句会因错误而失败。这是设计使然NDBCLUSTERndb-connectstring[mysqld]my.cnfCREATE TABLEALTER TABLE

您还可以[mysql_cluster] 在集群my.cnf文件中使用一个单独的部分来设置所有可执行文件读取和使用的设置:

Press CTRL+C to copy
# cluster-specific settings [mysql_cluster] ndb-connectstring=ndb_mgmd.mysql.com:1186

有关NDB可以在my.cnf文件中设置的其他变量,请参阅 第 23.4.3.9.2 节,“NDB Cluster 系统变量”

NDB Cluster 全局配置文件按照约定命名 config.ini(但这不是必需的)。如果需要,它在启动时由ndb_mgmd读取,并且可以放在它可以读取的任何位置。配置的位置和名称 在命令行上使用 with ndb_mgmd指定。此选项没有默认值,如果 ndb_mgmd使用配置缓存,则会被忽略。 --config-file=path_name

NDB Cluster 的全局配置文件使用 INI 格式,它由以节标题(用方括号括起来)开头的节组成,后跟适当的参数名称和值。与标准 INI 格式的一个偏差是参数名称和值可以用冒号 ( :) 和等号 ( =) 分隔;但是,最好使用等号。另一个偏差是部分不是由部分名称唯一标识的。相反,唯一部分(例如相同类型的两个不同节点)由指定为部分内参数的唯一 ID 标识。

大多数参数都定义了默认值,也可以在config.ini. 要创建默认值部分,只需将单词添加 default到部分名称即可。例如,一个 [ndbd]部分包含适用于特定数据节点的[ndbd default]参数,而一个部分包含适用于所有数据节点的参数。假设所有数据节点应该使用相同的数据内存大小。要配置它们,请创建一个[ndbd default]部分,其中包含 DataMemory一行以指定数据存储器大小。

如果使用,该[ndbd default]部分必须位于[ndbd]配置文件中的任何部分之前。default对于任何其他类型 的部分也是如此 。

笔记

在 NDB Cluster 的一些旧版本中,没有默认值 ,总是必须在sectionNoOfReplicas中明确指定。[ndbd default]尽管此参数现在具有默认值 2,这是大多数常见使用场景中的推荐设置,但仍建议您显式设置此参数。

全局配置文件必须定义集群中涉及的计算机和节点以及这些节点位于哪些计算机上。此处显示了由一个管理服务器、两个数据节点和两个 MySQL 服务器组成的集群的简单配置文件示例:

Press CTRL+C to copy
# file "config.ini" - 2 data nodes and 2 SQL nodes # This file is placed in the startup directory of ndb_mgmd (the # management server) # The first MySQL Server can be started from any host. The second # can be started only on the host mysqld_5.mysql.com [ndbd default] NoOfReplicas= 2 DataDir= /var/lib/mysql-cluster [ndb_mgmd] Hostname= ndb_mgmd.mysql.com DataDir= /var/lib/mysql-cluster [ndbd] HostName= ndbd_2.mysql.com [ndbd] HostName= ndbd_3.mysql.com [mysqld] [mysqld] HostName= mysqld_5.mysql.com
笔记

前面的示例旨在作为熟悉 NDB Cluster 的最小启动配置,并且几乎可以肯定不足以用于生产设置。请参阅第 23.4.3.2 节,“NDB Cluster 的推荐启动配置”,它提供了更完整的示例启动配置。

config.ini每个节点在文件 中都有自己的部分 。例如,这个集群有两个数据节点,所以前面的配置文件包含[ndbd]定义这些节点的两个部分。

笔记

不要将注释与config.ini文件中的节标题放在同一行;这会导致管理服务器无法启动,因为在这种情况下它无法解析配置文件。

config.ini 文件的部分

您可以在 config.ini配置文件中使用六个不同的部分,如下表所述:

您可以为每个部分定义default值。如果使用,一个default部分应该位于该类型的任何其他部分之前。例如,一个 [ndbd default]部分应该出现在配置文件中的任何[ndbd] 部分之前。

NDB Cluster 参数名称不区分大小写,除非在 MySQL 服务器my.cnfmy.ini文件中指定。