MySQL NDB 集群 API 开发者指南  /  ...  /  管理服务器连接函数

3.2.4 管理服务器连接函数

本节提供有关用于启动、配置和终止与 NDB 管理服务器的连接的 MGM API 函数的信息。

ndb_mgm_get_connectstring()

描述

此函数检索用于连接的连接字符串。

注意

如果未调用 ndb_mgm_set_connectstring(),则此函数将返回默认连接字符串。 此外,返回的连接字符串的格式可能与原始连接字符串略有不同,因为它可能包含原始连接字符串中不存在的说明符。

连接字符串格式与 ndb_mgm_set_connectstring() 中讨论的格式相同。

签名
const char* ndb_mgm_get_connectstring
    (
      NdbMgmHandle handle,
      char*        buffer,
      int          size
    )
参数

此函数接受三个参数

  • 一个 NdbMgmHandle

  • 一个指向要放置结果的 buffer 的指针。

  • 缓冲区的 size

返回值

连接字符串 - 这与推送到 buffer 的值相同。

ndb_mgm_get_configuration_nodeid()

描述

此函数获取正在连接(或已连接)到的节点的 ID。

签名
int ndb_mgm_get_configuration_nodeid
    (
      NdbMgmHandle handle
    )
参数

管理服务器句柄。

返回值

节点 ID。

ndb_mgm_get_connected_port()

描述

此函数检索连接使用的端口号。

签名
int ndb_mgm_get_connected_port
    (
      NdbMgmHandle handle
    )
参数

一个 NdbMgmHandle

返回值

端口号。

ndb_mgm_get_connected_host()

描述

此函数用于获取连接到的主机的名称。

签名
const char* ndb_mgm_get_connected_host
    (
      NdbMgmHandle handle
    )
参数

管理服务器 handle

返回值

主机名。

ndb_mgm_get_version()

描述

给定管理服务器句柄,此函数获取指示的管理服务器的 NDB 引擎和 MySQL 服务器版本信息。

签名
int ndb_mgm_get_version
    (
      NdbMgmHandle handle,
      int* major,
      int* minor,
      int* build,
      int length,
      char* string
    )
参数

一个 NdbMgmHandle,以及指向 NDB 引擎 majorminorbuild 版本值的指针,以及指向版本 string 的指针(以及字符串的 length)。

版本字符串使用格式 mysql-x.x.x ndb-y.y.y-status,其中 x.x.x 是三部分 MySQL 服务器版本,y.y.y 是三部分 NDB 存储引擎版本。 status 字符串指示发布级别或状态;通常是 betarcga 之一,但有时也可能出现其他值。

返回值

ndb_mgm_get_version() 返回一个整数:成功时返回 0;任何非零值表示错误。

ndb_mgm_is_connected()

描述

用于确定是否已建立连接。

注意

此函数不会确定在连接的另一端是否存在 活动 管理服务器。 使用 ndb_mgm_check_connection() 来完成该任务。

签名
int ndb_mgm_is_connected
    (
      NdbMgmHandle handle
    )
参数

管理服务器 handle

返回值

此函数返回一个整数,其值的解释如下

  • 0:未连接到管理节点。

  • 任何非零值:已与管理节点建立连接。

ndb_mgm_check_connection()

描述

此函数可用于确定管理服务器是否正在管理客户端的给定连接上运行。

签名
int ndb_mgm_check_connection
    (
      NdbMgmHandle handle
    )
参数

一个 NdbMgmHandle(请参阅 第 3.1 节 “MGM API 概念”)。

返回值

在 NDB 7.5 及更高版本中,此函数在成功时返回 0,在句柄为空时返回 -1,在未连接时返回 -2。

在 NDB 7.4 及更早版本中,此函数在发生错误时返回 -1;否则返回 0,即使管理服务器句柄为 NULL 或连接检查失败时也是如此(错误 #53242,错误 #11760802)。

ndb_mgm_number_of_mgmd_in_connect_string()

描述

这是一个便捷函数,它提供了一种简单的方法来确定使用 ndb_mgm_set_connectstring() 设置的连接字符串中引用的管理服务器的数量。

签名
int ndb_mgm_number_of_mgmd_in_connect_string
    (
      NdbMgmHandle handle
    )
参数

管理句柄 (NdbMgmHandle)。

返回值

成功时返回一个非负整数;负整数表示失败。

ndb_mgm_set_bindaddress()

描述

此函数可以为管理服务器设置本地绑定地址。 如果使用,则必须在连接到管理服务器之前调用它。

签名
int ndb_mgm_set_bindaddress
    (
      NdbMgmHandle handle,
      const char*  address
    )
参数

此函数接受两个参数

  • 管理句柄 (NdbMgmHandle)。

  • 形式为 host[:port] 的字符串 address

返回值

返回一个整数

  • 0 表示成功

  • 任何非零值表示失败(地址无效)

    重要

    绑定其他有效本地地址所导致的错误要等到实际尝试连接到管理服务器时才会报告。

ndb_mgm_set_connect_timeout()

描述

设置网络操作超时的秒数;默认值为 3 秒。

在 NDB 8.0.37 及更高版本中受支持。 NDB 8.3.0 不支持。

签名
int ndb_mgm_set_connect_timeout
    (
      NdbMgmHandle handle, 
      unsigned int seconds
    )
参数

ndb_mgm_set_connect_timeout() 接受两个参数

  • 管理服务器 handle

  • seconds 为单位的超时时间。

返回值

此函数在失败时返回 0,否则表示成功。

ndb_mgm_set_connectstring()

描述

此函数用于设置管理服务器与节点的连接的连接字符串。

签名
int ndb_mgm_set_connectstring
    (
      NdbMgmHandle handle,
      const char*  connection_string
    )
参数

ndb_mgm_set_connectstring() 接受两个参数

  • 管理服务器 handle

  • 格式如下所示的 connection_string

    connection_string :=
        [nodeid-specification,]host-specification[,host-specification]

    ndb_mgm_get_connectstring() 也使用此格式的连接字符串。

    可以使用单个连接字符串与多个管理服务器建立连接。

    nodeid-specification := nodeid=id
    host-specification := host[:port]

    idporthost 的定义如下

    • id:大于 0 的整数,用于标识 config.ini 中的节点。

    • port:引用标准 Unix 端口的整数。

    • host:包含有效网络主机地址的字符串。

返回值

此函数在失败时返回 -1

ndb_mgm_set_configuration_nodeid()

描述

此函数设置连接节点 ID。

签名
int ndb_mgm_set_configuration_nodeid
    (
      NdbMgmHandle handle,
      int          id
    )
参数

此函数需要两个参数

  • 一个 NdbMgmHandle

  • 要连接到的节点的 id

返回值

此函数在失败时返回 -1

ndb_mgm_set_timeout()

描述

设置网络操作超时的毫秒数;默认值为 60 秒。

重要

此函数设置的超时时间不仅适用于建立网络连接,也适用于需要使用网络连接进行通信的 每个 操作。 这包括由任何 MGM API 函数、NDB API 方法调用或 ndb_mgm 客户端命令执行的每个网络读或写操作。

签名
int ndb_mgm_set_timeout
    (
      NdbMgmHandle handle,
      unsigned int timeout_ms
    )
参数

此函数接受两个参数

  • 管理服务器句柄 (NdbMgmHandle)。

  • 超时前等待的时间,以毫秒为单位。 仅支持 1000 的倍数;不能保证任何函数在一秒钟内返回。

返回值

成功时返回 0,任何其他值表示失败。

ndb_mgm_connect()

描述

此函数建立与 ndb_mgm_set_connectstring() 设置的连接字符串指定的管理服务器的连接。

签名
int ndb_mgm_connect
    (
      NdbMgmHandle handle,
      int          retries,
      int          delay,
      int          verbose
    )
参数

此函数接受 4 个参数

  • 管理服务器 handle

  • 尝试连接时要进行的 retries 次数。 此值为 0 表示进行一次连接尝试。

  • 连接尝试之间的 delay 秒数。

    NDB 8.0.37 及更高版本 :如果未指定,则使用 ndb_mgm_set_connect_timeout() 指定的值。

  • 如果 verbose1,则为每次连接尝试打印一条消息。

返回值

此函数在失败时返回 -1

ndb_mgm_disconnect()

描述

此函数终止管理服务器连接。

签名
int ndb_mgm_disconnect
    (
      NdbMgmHandle handle
    )
参数

一个 NdbMgmHandle

返回值

如果无法断开连接,则返回 -1