除了 NDB Cluster 管理伺服器 (ndb_mgmd) 之外,屬於 NDB Cluster 的每個節點都需要一個連接字串,指向管理伺服器的位置。此連接字串用於建立與管理伺服器的連線,以及執行其他任務,具體取決於節點在叢集中的角色。連接字串的語法如下:
[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 Cluster 資料或 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
檔案中設定。