MySQL NDB Cluster API 開發者指南  /  ...  /  管理伺服器連線函式

3.2.4 管理伺服器連線函式

本節提供有關 MGM API 函式的資訊,這些函式用於啟動、設定和終止與 NDB 管理伺服器的連線。

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,當句柄為 null 時傳回 -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)。

  • 一個 address 字串,格式為 host[:port]

傳回值

傳回一個整數

  • 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

  • 嘗試連線時的重試次數。此值為0表示只嘗試連線一次。

  • 連線嘗試之間的延遲秒數。

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

  • 如果verbose1,則每次嘗試連線時都會列印訊息。

傳回值

此函式在發生失敗時傳回 -1

ndb_mgm_disconnect()

描述

此函數終止管理伺服器連線。

簽章
int ndb_mgm_disconnect
    (
      NdbMgmHandle handle
    )
參數

一個 NdbMgmHandle

傳回值

如果無法斷線,則回傳 -1