Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


18.5.4 MySQL Cluster での MySQL サーバーの使用法

mysqld は従来の MySQL サーバーのプロセスです。MySQL Cluster で使用するには、mysqldhttps://dev.mysql.com/downloads/ から入手可能なプリコンパイル済みバイナリに含まれるため、NDB ストレージエンジンのサポートを使用して構築する必要があります。ソースから MySQL を構築する場合は、-DWITH_NDBCLUSTER=1 オプションを付けて CMake を呼び出して、NDB のサポートを含める必要があります。

ソースからの MySQL Cluster のコンパイルについての詳細は、セクション18.2.2.3「Linux でのソースからの MySQL Cluster のビルド」およびセクション18.2.3.2「Windows でのソースからの MySQL Cluster のコンパイルとインストール」を参照してください。

(このセクションで説明したものに加えて、MySQL Cluster に関連する mysqld のオプションおよび変数については、セクション18.3.4「MySQL Cluster 用の MySQL Server オプションおよび変数」を参照してください。)

Cluster サポートを使用して mysqld バイナリを構築した場合、NDBCLUSTER ストレージエンジンはまだデフォルトで無効になっています。次の 2 つの指定可能なオプションのいずれかを使用すると、このエンジンを有効にできます。

  • mysqld を起動する際に、コマンド行で起動オプションとして --ndbcluster を使用します。

  • my.cnf ファイルの [mysqld] セクションに ndbcluster を含む行を挿入します。

NDBCLUSTER ストレージエンジンを有効にしてサーバーが実行されていることを確認する簡単な方法は、MySQL Monitor (mysql) で SHOW ENGINES ステートメントを発行することです。NDBCLUSTER の行に、Support 値として値 YES が表示されます。この行に NO が表示される場合や、このような行が出力に表示されない場合は、NDB 対応の MySQL バージョンが動作していません。この行に DISABLED が表示される場合は、先ほど説明した 2 つの方法のいずれかを使用して有効にする必要があります。

クラスタ構成データを読み取るには、MySQL サーバーに少なくとも次の 3 つの情報が必要です。

  • MySQL サーバー自身のクラスタノード ID

  • 管理サーバー (MGM ノード) のホスト名または IP アドレス

  • 管理サーバーに接続できる TCP/IP ポートの数

ノード ID は動的に割り当てられるため、明示的に指定する必要は厳密にはありません。

接続文字列を指定するには、mysqld の起動時にコマンド行で、または my.cnf 内に、mysqld パラメータ ndb-connectstring を使用します。接続文字列には、管理サーバーを検出できるホスト名または IP アドレス、および使用される TCP/IP ポートが含まれます。

次の例では、ndb_mgmd.mysql.com は管理サーバーが存在するホストであり、管理サーバーはポート 1186 でクラスタメッセージを待機します。

shell> mysqld --ndbcluster --ndb-connectstring=ndb_mgmd.mysql.com:1186

接続文字列の詳細は、セクション18.3.2.3「MySQL Cluster の接続文字列」を参照してください。

この情報が指定されると、MySQL サーバーがクラスタへの完全な参加者となります。(この方法で実行している mysqld プロセスは、多くの場合 SQL ノードと呼んでいます。)それは、すべてのクラスタデータノードおよびそのステータスを完全に認識し、すべてのデータノードへの接続を確立します。この場合、任意のデータノードをトランザクションコーディネータとして使用し、ノードデータを読み取って更新できます。

mysql クライアントで SHOW PROCESSLIST を使用すると、MySQL サーバーがクラスタに接続されているかどうかを確認できます。MySQL サーバーがクラスタに接続されていて、PROCESS 権限を持っている場合は、出力の最初の行が次のように表示されます。

mysql> SHOW PROCESSLIST \G
*************************** 1. row ***************************
     Id: 1
   User: system user
   Host:
     db:
Command: Daemon
   Time: 1
  State: Waiting for event from ndbcluster
   Info: NULL
重要

MySQL Cluster に参加するには、--ndbcluster--ndb-connectstring両方のオプション (my.cnf の同等のオプション) を付けて、mysqld プロセスを起動する必要があります。--ndbcluster オプションのみを付けて mysqld が起動された場合や、それがクラスタに接続できない場合は、ストレージエンジンに関係なく、NDB テーブルを操作することも、新しいテーブルを作成することもできません。後者の制約は、SQL ノードがクラスタに接続されていない間に、NDB テーブルと同じ名前を持つテーブルが作成されることを防ぐ目的の安全対策です。mysqld プロセスが MySQL Cluster に参加していない間に、別のストレージエンジンを使用してテーブルを作成する必要がある場合は、--ndbcluster オプションを付けずに、サーバーを起動する必要があります。