CentOS, MySQL Clusterを楽々設定したい

苦労して色々試してみた結果、さっくり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)

おー

次回は複数のサーバーで複数のノードを設定してみよう。

まだまだ調べることいっぱいあるね。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中