除了 NDB 集群管理服务器(ndb_mgmd)之外,NDB 集群中每个节点都需要一个指向管理服务器位置的连接字符串。此连接字符串用于建立与管理服务器的连接,以及根据节点在集群中的角色执行其他任务。连接字符串的语法如下
[nodeid=node_id, ]host-definition[, host-definition[, ...]]
host-definition:
host_name[:port_number]
node_id
是一个大于或等于 1 的整数,用于在 config.ini
中标识一个节点。 host_name
是一个字符串,表示一个有效的互联网主机名或 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 集群数据或 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
有许多不同的方法来指定连接字符串
每个可执行文件都有自己的命令行选项,该选项允许在启动时指定管理服务器。(请参阅相应可执行文件的文档。)
还可以通过将其放在管理服务器的
my.cnf
文件中的[mysql_cluster]
部分中,一次性为集群中的所有节点设置连接字符串。为了向后兼容,可以使用相同的语法提供两个其他选项
将
NDB_CONNECTSTRING
环境变量设置为包含连接字符串。将每个可执行文件的连接字符串写入一个名为
Ndb.cfg
的文本文件,并将此文件放置在可执行文件的启动目录中。
但是,这些选项现在已弃用,不应用于新的安装。
指定连接字符串的推荐方法是在命令行或每个可执行文件的 my.cnf
文件中进行设置。