MySQL Cluster調査のためにインストール、初期設定をしました。その方法をメモ。
構成
- 192.168.1.150 (CentOS5) : 管理ノード
- 192.168.1.210 (CentOS5) : データノード+SQLノード
- 192.168.1.208 (CentOS5) : データノード+SQLノード
インストール
管理ノードにインストールするソフトウェア
Cluster storage engine management
wget http://ftp.iij.ad.jp/pub/db/mysql/Downloads/MySQL-Cluster-7.0/MySQL-Cluster-gpl-management-7.0.6-0.rhel5.i386.rpm rpm -ivh MySQL-Cluster-gpl-management-7.0.6-0.rhel5.i386.rpm
Cluster storage engine basic tools
wget http://ftp.iij.ad.jp/pub/db/mysql/Downloads/MySQL-Cluster-7.0/MySQL-Cluster-gpl-tools-7.0.6-0.rhel5.i386.rpm rpm -ivh MySQL-Cluster-gpl-tools-7.0.6-0.rhel5.i386.rpm
以下はインストールされていないのみ、インストールしてください。
perl-DBI
yum -y install perl-DBI
perl-Class-MethodMaker
wget http://dag.wieers.com/rpm/packages/perl-Class-MethodMaker/perl-Class-MethodMaker-2.08-1.2.el5.rf.i386.rpm rpm -ivh perl-Class-MethodMaker-2.08-1.2.el5.rf.i386.rpm
データノード+SQLノードにインストールするソフトウェア
Cluster storage engine
wget http://ftp.iij.ad.jp/pub/db/mysql/Downloads/MySQL-Cluster-7.0/MySQL-Cluster-gpl-storage-7.0.6-0.rhel5.i386.rpm rpm -ivh MySQL-Cluster-gpl-storage-7.0.6-0.rhel5.i386.rpm
Server
wget http://ftp.iij.ad.jp/pub/db/mysql/Downloads/MySQL-Cluster-7.0/MySQL-Cluster-gpl-server-7.0.6-0.rhel5.i386.rpm rpm -ivh MySQL-Cluster-gpl-server-7.0.6-0.rhel5.i386.rpm
Client
wget http://ftp.iij.ad.jp/pub/db/mysql/Downloads/MySQL-Cluster-7.0/MySQL-Cluster-gpl-client-7.0.6-0.rhel5.i386.rpm rpm -ivh MySQL-Cluster-gpl-client-7.0.6-0.rhel5.i386.rpm
以下はインストールされていないのみ、インストールしてください。
perl-DBI
yum -y install perl-DBI
初期設定
管理ノードの設定
/var/lib/mysql-cluster/config.iniファイルに、以下のように入力します。
[NDBD DEFAULT] NoOfReplicas = 1 DataDir = /var/lib/mysql-cluster ServerPort = 63132 [MGM] Id = 1 HostName = 192.168.1.150 DataDir = /var/lib/mysql-cluster [NDBD] Id = 11 HostName = 192.168.1.210 [NDBD] Id = 12 HostName = 192.168.1.208 [MYSQLD] Id = 21 HostName = 192.168.1.210 [MYSQLD] Id = 22 HostName = 192.168.1.208
管理ノードの設定が終わったので、 管理コンソールを立ち上げ、管理ノードが起動しているか、起動時のクラスタの構成を確認します。
ndb_mgm ndb_mgm> show Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=11 (not connected, accepting connect from 192.168.1.210) id=12 (not connected, accepting connect from 192.168.1.208) [ndb_mgmd(MGM)] 1 node(s) id=1 @192.168.1.150 (mysql-5.1.34 ndb-7.0.6) [mysqld(API)] 2 node(s) id=21 (not connected, accepting connect from 192.168.1.210) id=22 (not connected, accepting connect from 192.168.1.208)
データノード+SQLノードの設定
インストールされたはずの
/usr/share/doc/MySQL-Cluster-gpl-server-7.0.6/my-large.cnf
を雛形として、/etc/my.cnfに設定ファイルを作成します。
[mysqld]セクションに
ndbcluster ndb-connectstring = 192.168.10.1
[mysql_cluster] セクションを追加して、
ndb-connectstring = 192.168.10.1
を追記します。
設定が終わったので、各データノード、SQLノードをそれぞれ起動して、ndbclusterストレージエンジンが有効になっていることを確かめます。
shell>ndbd --initial shell>mysqld_safe --user=mysql & mysql> show engines; +------------+---------+----------------------------------------------------------------+--------------+------+------------+ | Engine | Support | Comment | Transactions | XA | Savepoints | +------------+---------+----------------------------------------------------------------+--------------+------+------------+ | ndbcluster | YES | Clustered, fault-tolerant tables | YES | NO | NO |
管理ノードでデータノード+SQLノードが起動しているか確認します。
ndb_mgm>show Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=11 @192.168.1.210 (mysql-5.1.34 ndb-7.0.6, Nodegroup: 0, Master) id=12 @192.168.1.208 (mysql-5.1.34 ndb-7.0.6, Nodegroup: 1) [ndb_mgmd(MGM)] 1 node(s) id=1 @192.168.1.150 (mysql-5.1.34 ndb-7.0.6) [mysqld(API)] 2 node(s) id=21 @192.168.1.210 (mysql-5.1.34 ndb-7.0.6) id=22 @192.168.1.208 (mysql-5.1.34 ndb-7.0.6)
クラスタを使用する宣言
クラスタを使用するかどうかはテーブルごとに決定できます。
mysql>CREATE TABLE test (i INT) ENGINE=NDB;
とテーブル作成時にENGINE=NDBと宣言すれば、クラスタを使用するテーブルが作成できます。