苦労して色々試してみた結果、さっくりyumでインストールできる方法を見つけたのでやってみる。
yumかわいいよ。
RPMでやっても同じなんだけどね。
epelとremiのrepoを設定。
wget http://ftp.iij.ad.jp/pub/linux/fedora/epel/5/x86_64/epel-release-5-3.noarch.rpm rpm -Uvh epel-release-5-3.noarch.rpm wget http://rpms.famillecollet.com/el5.x86_64/remi-release-5-7.el5.remi.noarch.rpm rpm -Uvh remi-release-5-7.el5.remi.noarch.rpm
インストール。
yum install mysql-server mysql-cluster ================================================================================================================================================================================================================= Package Arch Version Repository Size ================================================================================================================================================================================================================= Installing: mysql-cluster x86_64 5.1.34-1.el5.remi remi 14 M mysql-server x86_64 5.1.34-1.el5.remi remi 10 M Installing for dependencies: mysql x86_64 5.1.34-1.el5.remi remi 3.7 M mysql-libs x86_64 5.1.34-1.el5.remi remi 2.1 M mysqlclient15 x86_64 5.0.67-1.el5.remi remi 1.3 M perl-DBD-mysql x86_64 4.010-1.el5.rf rpmforge 225 k perl-DBI x86_64 1.607-1.el5.rf rpmforge 871 k perl-Net-Daemon noarch 0.43-1.el5.rf rpmforge 44 k perl-PlRPC noarch 0.2020-1.el5.rf rpmforge 33 k Transaction Summary ================================================================================================================================================================================================================= Install 9 Package(s) Update 0 Package(s) Remove 0 Package(s)
remiだけだったぽい。
ここにある、mysqlとmysql-serverは普通にmysqlをインストールする時のパッケージ。mysqldとmysqlクライアント。
MySQL Clusterには、管理ノード、データノード、SQLノードとあるのですが、そのうちSQLノードがmysqldとかです。
管理ノードは所謂管理ツール。クラスタ状態だとかmysqldだとかを管理してる。
データノードがデータを保存する場所。メモリ上に保存している模様。ファイル保存しないのかな?
SQLノードがmysqld。データノードからデータを取得したりSQLを解析したり、それをプログラムに渡してあげたり。
いつもだとテーブルのエンジンはMyISAMやInnoDBですが、これをNDBCLUSTERにするだけでいいのです。
さくっとインストールを終えて簡単に設定。
vi /etc/my.cnf
[mysqld] ndbcluster ndb-connectstring="127.0.0.1" default-character-set=utf8 [ndbd] ndb-connectstring=127.0.0.1 [mysql_cluster] ndb-connectstring=127.0.0.1 [mysql] default-character-set=utf8
vi /var/lib/mysql-cluster/config.ini
[NDBD DEFAULT] NoOfReplicas: 1 IndexMemory=30M [MGM DEFAULT] PortNumber: 1186 [NDB_MGMD] Id: 1 HostName: 127.0.0.1 ArbitrationRank: 1 DataDir: /var/lib/mysql-cluster [NDBD] Id: 21 HostName: 127.0.0.1 DataDir: /var/lib/ndb/data [NDBD] #Id: 22 #HostName: 192.168.0.12 #DataDir: /var/lib/ndb/data [MYSQLD] Id: 31 HostName: 127.0.0.1 [MYSQLD] [MYSQLD] [MYSQLD]
必要なディレクトリを作っておく。
mkdir -p /var/lib/ndb/data chown -R mysql:mysql /var/lib/ndb
これじゃあまりMySQL Clusterの実感ないけどとりあえず起動。
service ndb_mgmd start service ndbd start service mysqld start
状態を見てみる。
ndb_mgm > show Connected to Management Server at: 127.0.0.1:1186 Cluster Configuration --------------------- [ndbd(NDB)] 1 node(s) id=21 @127.0.0.1 (Version: 5.1.34, Nodegroup: 0, Master) [ndb_mgmd(MGM)] 1 node(s) id=1 @127.0.0.1 (Version: 5.1.34) [mysqld(API)] 4 node(s) id=31 @127.0.0.1 (Version: 5.1.34) id=32 (not connected, accepting connect from any host) id=33 (not connected, accepting connect from any host) id=34 (not connected, accepting connect from any host)
おー
次回は複数のサーバーで複数のノードを設定してみよう。
まだまだ調べることいっぱいあるね。