Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


25.4.3.3 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 节点将尝试在每个主机上联系相继的管理服务器,直到建立成功连接为止。

还可以在连接字符串中指定一个或多个绑定地址,以便节点具有多个网络接口时连接到管理服务器。绑定地址由主机名或网络地址和可选端口号组成。这一 enhanced 连接字符串语法如以下所示:

[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]

如果在连接字符串中使用单个绑定地址,且在指定任何管理主机之前,那么该地址将被用作默认的连接方式(除非为给定的管理服务器override;后续部分将提供一个示例)。例如,以下连接字符串使节点无论连接到哪个管理服务器都使用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的主机上的管理服务器。

您可以指定默认绑定地址,然后对一个或多个特定的管理主机进行override。在以下示例中,localhost用于连接到名为poseidon的主机上的管理服务器;由于198.51.100.242在任何管理服务器定义之前指定(即在默认绑定地址),因此它将被用作连接到名为perchorca的主机上的管理服务器:

bind-address=198.51.100.242,poseidon:1186;bind-address=localhost,perch:1186,orca:2200

可以使用多种方式来指定连接字符串:

  • 每个可执行文件都有自己的命令行选项,可以在启动时指定管理服务器。 (请查看相应的可执行文件文档。)

  • 也可以将整个集群中的所有节点的连接字符串设置为一次性操作,通过将其放置在管理服务器的my.cnf文件中,以[mysql_cluster]节的形式。

  • 为了保持向后兼容性,还有两个其他选项可用,使用相同的语法:

    1. NDB_CONNECTSTRING环境变量设置为包含连接字符串的值。

    2. 将每个可执行文件的连接字符串写入名为Ndb.cfg的文本文件,并将该文件放置在可执行文件的启动目录中。

    然而,这些选项现在已经被弃用,不应该用于新安装中。

推荐的方法是,在命令行或my.cnf文件中为每个可执行文件设置连接字符串。