基本に習熟して頂くために、最も簡単な MySQL Cluster の実用面の設定について説明します。これが終了すると、本章の関連する項で提供された情報に従ってお客様のご所望の設定が出来るようになります。
最初に、/var/lib/mysql-cluster
のような設定ディレクトリを作成する必要があります。それを作成するには以下のコマンドをシステム
root
ユーザーとして実行します。
shell> mkdir /var/lib/mysql-cluster
このディレクトリで以下の情報を含む
config.ini
と呼ばれるファイルを作成します。必要に応じてお客様のシステムに適切な値を
HostName
および DataDir
に入力します。
# file "config.ini" - showing minimal setup consisting of 1 data node, # 1 management server, and 3 MySQL servers. # The empty default sections are not required, and are shown only for # the sake of completeness. # Data nodes must provide a hostname but MySQL Servers are not required # to do so. # If you don't know the hostname for your machine, use localhost. # The DataDir parameter also has a default value, but it is recommended to # set it explicitly. # Note: DB, API, and MGM are aliases for NDBD, MYSQLD, and NDB_MGMD # respectively. DB and API are deprecated and should not be used in new # installations. [NDBD DEFAULT] NoOfReplicas= 1 [MYSQLD DEFAULT] [NDB_MGMD DEFAULT] [TCP DEFAULT] [NDB_MGMD] HostName= myhost.example.com [NDBD] HostName= myhost.example.com DataDir= /var/lib/mysql-cluster [MYSQLD] [MYSQLD] [MYSQLD]
ndb_mgmd この段階でマネジメント
サーバーを起動できます。デフォルトでは
config.ini
ファイルを現在動作しているディレクトリから読み込もうとしますので、ファイルが存在するディレクトリに変更して、ndb_mgmd
を起動します。
shell>cd /var/lib/mysql-cluster
shell>ndb_mgmd
次に ndbd
を実行してシングルのデータ
ノードを起動します。ndbd
を所定のデータノードにまさに初めて起動するには、以下のに示す
--initial
オプションを使用する必要があります。
shell> ndbd --initial
その後の ndbd
の起動では、普通は--initial
オプションを省き
たいと思うでしょう
shell> ndbd
--initial
をその後の再起動で省く理由はこのオプションでは
ndbd
がこのデータノードの既存のすべてのデータおよびログ
ファイルを削除し、新たにそれらを作成するからです。--initial
を最初の ndbd
起動以外に使用しないこの規則の例外はそれをクラスタを起動するときに使用し、新しいデータ
ノードを追加した後にバックアップから保存することです。
デフォルトでは、ndbd
はマネジメント サーバーをポート 1186 の
localhost
で探します。
注:MySQL をバイナリの
tarball
からインストールした場合には、ndb_mgmd
および ndbd
サーバーのパスを明示的に指定する必要があります。(通常、これらは
/usr/local/mysql/bin
にあります。)
最後に、ロケーションを MySQL データ
ディレクトリ (通常 /var/lib/mysql
あるいは /usr/local/mysql/data
)
に変更し、my.cnf
ファイルが NDB
ストレージ
エンジンに起動に必要なオプションが含まれているか確認します。
[mysqld] ndbcluster
この段階で MySQL サーバーを従来通りに起動できます。
shell> mysqld_safe --user=mysql &
MySQL
サーバーが適切に動作しているか確認するために少し待ちます。mysql
ended
との通知が表示された場合には、サーバーの.err
ファイルをチェックして何が間違っているか調べます。
ここまですべてが問題なく動作した場合、この段階でクラスタを使用して起動できます。サーバーに接続して
NDBCLUSTER
ストレージ
エンジンが有効であることを確認します。
shell>mysql
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 to server version: 5.1.15-beta Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>SHOW ENGINES\G
... *************************** 12. row *************************** Engine: NDBCLUSTER Support: YES Comment: Clustered, fault-tolerant, memory-based tables *************************** 13. row *************************** Engine: NDB Support: YES Comment: Alias for NDBCLUSTER ...
前述の参考例の出力で表示された行番号はサーバーの設定によってお客様のシステムに表示されたものと異なる場合があります。
NDBCLUSTER
テーブルの作成
shell>mysql
mysql>USE test;
Database changed mysql>CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;
Query OK, 0 rows affected (0.09 sec) mysql>SHOW CREATE TABLE ctest \G
*************************** 1. row *************************** Table: ctest Create Table: CREATE TABLE `ctest` ( `i` int(11) default NULL ) ENGINE=ndbcluster DEFAULT CHARSET=latin1 1 row in set (0.00 sec)
お客様のノードが適切に設定されているか確認するには、マネジメント クライアントを起動します。
shell> ndb_mgm
クラスタのステータスのレポートを取得するにはマネジメント クライアントの SHOW コマンドを使用します。
NDB> SHOW
Cluster Configuration
---------------------
[ndbd(NDB)] 1 node(s)
id=2 @127.0.0.1 (Version: 3.5.3, Nodegroup: 0, Master)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @127.0.0.1 (Version: 3.5.3)
[mysqld(API)] 3 node(s)
id=3 @127.0.0.1 (Version: 3.5.3)
id=4 (not connected, accepting connect from any host)
id=5 (not connected, accepting connect from any host)
この段階で、実働可能な MySQL Cluster
の設定を完了しました。ここで
ENGINE=NDBCLUSTER
あるいはその別名
ENGINE=NDB
で作成されたテーブルを使用してクラスタのデータを保存できます。