MySQL Cluster 管理サーバー (ndb_mgmd) を除き、MySQL Cluster の一部となる各ノードには、管理サーバーの場所を指定する接続文字列が必要です。この接続文字列は、管理サーバーとの接続を確立するときに使用されるほか、クラスタ内でのノードの役割によっては、ほかのタスクを実行するときにも使用されます。接続文字列の構文は次のとおりです。
[nodeid=node_id, ]host-definition[, host-definition[, ...]]
host-definition:
host_name[:port_number]
node_id
は、config.ini
内のノードを識別する 1 以上の整数です。host_name
は、有効なインターネット名または IP アドレスを表す文字列です。port_number
は、TCP/IP ポート番号を参照する整数です。
example 1 (long): "nodeid=2,myhost1:1100,myhost2:1100,192.168.0.3:1200"
example 2 (short): "myhost1"
何も指定されなかった場合は、デフォルトの接続文字列値として localhost:1186
が使用されます。接続文字列から port_num
が省略された場合、デフォルトポートは 1186 です。このポートは、この目的のために IANA によって割り当てられたものであるため、ネットワーク上で常に使用可能です (詳細は、http://www.iana.org/assignments/port-numbersを参照してください)。
複数のホスト定義を列挙すると、複数の冗長管理サーバーを指定できます。MySQL Cluster のデータまたは API ノードは、正常な接続が確立されるまで、各ホスト上の連続する管理サーバーへの接続を指定された順序で試行します。
接続文字列には、管理サーバーに接続する複数のネットワークインタフェースを持つノードで使用される 1 つ以上のバインドアドレスを指定することもできます。バインドアドレスは、ホスト名またはネットワークアドレスと、オプションのポート番号で構成されます。この拡張された接続文字列の構文をここに示します。
[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]
接続文字列で管理ホストを指定する前に 1 つのバインドアドレスを使用すると、そのアドレスは管理ホストのいずれかに接続するためのデフォルトとして使用されます (特定の管理サーバーにオーバーライドされた場合を除きます。例については、このセクションで後述します)。たとえば、次の接続文字列によって、このノードは接続先の管理サーバーに関係なく 192.168.178.242
を使用します。
bind-address=192.168.178.242, poseidon:1186, perch:1186
管理ホストの定義のあとにバインドアドレスを指定すると、そのアドレスはその管理ノードへの接続でのみ使用されます。次の接続文字列について考えます。
poseidon:1186;bind-address=localhost, perch:1186;bind-address=192.168.178.242
この場合、ノードは poseidon
という名前のホストで実行されている管理サーバーに接続するために localhost
を使用し、perch
という名前のホストで実行されている管理サーバーに接続するために 192.168.178.242
を使用します。
デフォルトのバインドアドレスを指定してから、1 台以上の管理ホストにこのデフォルトをオーバーライドできます。次の例では、ホスト poseidon
で実行されている管理サーバーに接続するために localhost
が使用されます。192.168.178.242
は、最初に (どの管理サーバーの定義よりも前に) 指定されているため、デフォルトのバインドアドレスであり、ホスト perch
および orca
上の管理サーバーに接続するために使用されます。
bind-address=192.168.178.242,poseidon:1186;bind-address=localhost,perch:1186,orca:2200
接続文字列を指定するには、いくつかの異なる方法があります。
各実行可能ファイルには、起動時に管理サーバーを指定できる固有のコマンド行オプションがあります。(各実行可能ファイルのドキュメントを参照してください。)
管理サーバーの
my.cnf
ファイルの[mysql_cluster]
セクションに接続文字列を配置することで、クラスタ内のすべてのノードの接続文字列を同時に設定することもできます。-
下位互換性のため、同じ構文を使用するオプションがほかに 2 つ用意されています。
NDB_CONNECTSTRING
環境変数を設定して、接続文字列を含めます。各実行可能ファイル用の接続文字列を
Ndb.cfg
という名前のテキストファイルに記述し、このファイルを実行可能ファイルの起動ディレクトリに配置します。
ただし、これらは現在非推奨であり、新しいインストールに使用しないでください。
推奨される接続文字列の指定方法は、各実行可能ファイルのコマンド行または my.cnf
ファイルでの設定です。