MySQL 8.0 リファレンスマニュアル


23.3.3.3 NDB Cluster 接続文字列

NDB Cluster 管理サーバー (ndb_mgmd) を除き、NDB 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,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 ノードは、接続が正常に確立されるまで、指定された順序で各ホスト上の連続した管理サーバーへの接続を試みます。

接続文字列には、管理サーバーに接続する複数のネットワークインタフェースを持つノードで使用される 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 つのバインドアドレスを使用すると、そのアドレスは管理ホストのいずれかに接続するためのデフォルトとして使用されます (特定の管理サーバーにオーバーライドされた場合を除きます。例については、このセクションで後述します)。 たとえば、次の接続文字列によって、このノードは接続先の管理サーバーに関係なく 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

この場合、ノードは poseidon という名前のホストで実行されている管理サーバーに接続するために localhost を使用し、perch という名前のホストで実行されている管理サーバーに接続するために 198.51.100.242 を使用します。

デフォルトのバインドアドレスを指定してから、1 台以上の管理ホストにこのデフォルトをオーバーライドできます。 次の例では、ホスト poseidon で実行されている管理サーバーに接続するために localhost が使用されます。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] セクションに接続文字列を配置することで、クラスタ内のすべてのノードの接続文字列を同時に設定することもできます。

  • 下位互換性のため、同じ構文を使用するオプションがほかに 2 つ用意されています。

    1. NDB_CONNECTSTRING 環境変数を設定して、接続文字列を含めます。

    2. 各実行可能ファイル用の接続文字列を Ndb.cfg という名前のテキストファイルに記述し、このファイルを実行可能ファイルの起動ディレクトリに配置します。

    ただし、これらは現在非推奨であり、新しいインストールに使用しないでください。

推奨される接続文字列の指定方法は、各実行可能ファイルのコマンド行または my.cnf ファイルでの設定です。


関連キーワード:  NDB, テーブル, ndbinfo, 接続, 管理, ndb, ノード, サーバー, 構成, データ