NDB群集连接字符串
除了NDB群集管理服务器(ndb_mgmd)之外,属于NDB群集的每个节点都需要一个指向管理服务器位置的连接字符串。此连接字符串用于建立与管理服务器的连接以及执行其他任务,具体取决于群集中节点的角色。连接字符串的语法如下:
[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群集数据或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
每个可执行文件的文件中进行设置。