除了 NDB Cluster 管理服务器 ( ndb_mgmd ),作为 NDB Cluster 一部分的每个节点都需要一个指向管理服务器位置的连接字符串。此连接字符串用于建立与管理服务器的连接以及根据节点在集群中的角色执行其他任务。连接字符串的语法如下:
[nodeid=node_id, ]host-definition[, host-definition[, ...]]
host-definition:
host_name[:port_number]
node_id
是一个大于或等于 1 的整数,它标识 中的一个节点config.ini
。
host_name
是表示有效 Internet 主机名或 IP 地址的字符串。
port_number
是引用 TCP/IP 端口号的整数。
example 1 (long): "nodeid=2,myhost1:1100,myhost2:1100,198.51.100.3:1200"
example 2 (short): "myhost1"
localhost:1186
如果未提供,则用作默认连接字符串值。如果
port_num
从连接字符串中省略,则默认端口为 1186。此端口在网络上应始终可用,因为它已由 IANA 为此目的分配(请参阅
http://www.iana.org/assignments/port-numbers详情)。
通过列出多个主机定义,可以指定多个冗余管理服务器。NDB Cluster 数据或 API 节点尝试按照指定的顺序联系每个主机上的连续管理服务器,直到建立成功的连接。
也可以在连接字符串中指定一个或多个绑定地址,以供具有多个网络接口的节点用于连接到管理服务器。绑定地址由主机名或网络地址和可选的端口号组成。连接字符串的增强语法如下所示:
[nodeid=node_id, ]
[bind-address=host-definition, ]
host-definition[; bind-address=host-definition]
host-definition[; bind-address=host-definition]
[, ...]]
host-definition:
host_name[:port_number]
如果在指定任何管理主机之前
在连接字符串中使用单个绑定地址
,则此地址将用作连接到其中任何主机的默认地址(除非对给定的管理服务器进行覆盖;请参阅本节后面的示例) . 例如,以下连接字符串会导致节点使用
198.51.100.242
而不管它连接到的管理服务器:
bind-address=198.51.100.242, poseidon:1186, perch:1186
如果在管理主机定义之后 指定绑定地址,则它仅用于连接到该管理节点。考虑以下连接字符串:
poseidon:1186;bind-address=localhost, perch:1186;bind-address=198.51.100.242
在这种情况下,该节点用于localhost
连接到在名为 的主机上运行的管理服务器,
poseidon
并
198.51.100.242
连接到在名为 的主机上运行的管理服务器perch
。
您可以指定默认绑定地址,然后为一个或多个特定管理主机覆盖此默认值。在下面的示例中,localhost
用于连接到主机上运行的管理服务器
poseidon
;由于
198.51.100.242
首先指定(在任何管理服务器定义之前),它是默认绑定地址,因此用于连接到主机上的管理服务器
perch
和orca
:
bind-address=198.51.100.242,poseidon:1186;bind-address=localhost,perch:1186,orca:2200
有许多不同的方法来指定连接字符串:
每个可执行文件都有自己的命令行选项,可以在启动时指定管理服务器。(请参阅相应可执行文件的文档。)
也可以一次性为集群中的所有节点设置连接字符串,方法是将其放置在
[mysql_cluster]
管理服务器my.cnf
文件的一个部分中。为了向后兼容,还有两个其他选项可用,使用相同的语法:
设置
NDB_CONNECTSTRING
环境变量以包含连接字符串。将每个可执行文件的连接字符串写入一个名为 的文本文件
Ndb.cfg
,并将此文件放在可执行文件的启动目录中。
但是,这些现在已被弃用,不应用于新安装。
指定连接字符串的推荐方法是在命令行或
my.cnf
文件中为每个可执行文件设置它。