このページは機械翻訳したものです。
mysqld は従来の MySQL サーバーのプロセスです。 NDB Cluster で使用するには、https://dev.mysql.com/downloads/ から使用可能なプリコンパイル済みバイナリ内にあるため、NDB ストレージエンジンをサポートするようにmysqld を構築する必要があります。 ソースから MySQL を構築する場合は、-DWITH_NDBCLUSTER=1 オプションを付けてCMake を呼び出して、NDB のサポートを含める必要があります。
ソースから NDB Cluster をコンパイルする方法の詳細は、セクション23.2.1.4「Linux でのソースからの NDB Cluster の構築」、およびセクション23.2.2.2「Windows でのソースからの NDB Cluster のコンパイルとインストール」 を参照してください。
(NDB Cluster に関連するこのセクションで説明されているオプションと変数に加えて、mysqld のオプションと変数については、セクション23.3.3.9「NDB 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
管理サーバーのホスト名または 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接続文字列の詳細は、セクション23.3.3.3「NDB 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 NDB Cluster に参加するには、オプション--ndbcluster および--ndb-connectstring (またはmy.cnf での同等のもの) をboth でmysqld プロセスを起動する必要があります。--ndbcluster オプションのみを付けてmysqld が起動された場合や、それがクラスタに接続できない場合は、ストレージエンジンに関係なく、NDB テーブルを操作することも、新しいテーブルを作成することもできません。 後者の制約は、SQL ノードがクラスタに接続されていない間に、NDB テーブルと同じ名前を持つテーブルが作成されることを防ぐ目的の安全対策です。mysqld プロセスが NDB Cluster に参加していないときに別のストレージエンジンを使用してテーブルを作成する場合は、サーバーなしを--ndbcluster オプションで再起動する必要があります。