MySQL Clusterは良さそう! でも、どうやって動かしたらいいの? というムキも多々いらっしゃるでしょう。現在MySQL Clusterのダウンロードサイトでは、MySQL Cluster Quick Start Guideが公開されています。これにはWindows版もありますので、今回はこれに従って一台のWindows上でMySQL Clusterの動作環境を作ってみたいと思います。(木村の環境はWindows 7 64-bit home editionです)下記のドキュメント(pdf)を見ながらご一緒にどうぞ!
MySQL Cluster Quick Start for Windows
1.ソフトウエアの取得(Get the software)
ダウンロードページからMySQL Clusterを入手します。現在のGAは7.1.8です。プラットフォームで「Microsoft Windows」を選択し、お使いのWindowsのbit数にあわせてバイナリを選択します。32-bitであれば「Windows (x86, 32-bit), ZIP Archive 7.1.8 168.2M
(mysql-cluster-gpl-noinstall-7.1.8-win32.zip) 」を、私の場合は、64-bitですので、以下のバイナリをダウンロードします。
Windows (x86, 64-bit), ZIP Archive 7.1.8 172.8M
(mysql-cluster-gpl-noinstall-7.1.8-winx64.zip) MD5: 4dbb9b6a5fad5ce5ed915e3c1295e6ab
ダウンロードしたバイナリが正しいものかどうかはMD5値の比較でわかります。Linux畑の人は十分承知のこの値ですが、Windowsではデフォルトで表示するすべがありませんので、fcivというツールなどを使ってダウンロードしたバイナリをチェックします。詳細は次のページをご参照ください。
ハッシュ値を利用してファイルの同一性をチェックする(@IT)
fcivを入れてチェックするとこんな感じでした。
C:¥Users¥meiji¥Downloads>fciv mysql-cluster-gpl-noinstall-7.1.8-winx64.zip
//
// File Checksum Integrity Verifier version 2.05.
//
4dbb9b6a5fad5ce5ed915e3c1295e6ab mysql-cluster-gpl-noinstall-7.1.8-winx64.zip
2.インストール(Install)
インストールはダウンロードしたファイル(zip)を任意のディレクトリに展開するだけです。展開先はドキュメントに倣ってユーザディレクトリ(C:¥Users¥ユーザ名)で行ってみます。私の場合はユーザ名meijiですので、以下に展開します。
C:¥Users¥meiji¥mysqlc
Windowsでのzipファイルの展開は大変遅いので、じっくり待ちましょう。この間に、展開されたコマンドが置かれるディレクトリ(C:¥Users¥meiji¥mysqlc¥bin)にパスを通しておくのもよいでしょう。
環境変数を変更する(@IT)
http://www.atmarkit.co.jp/fwin2k/win2ktips/189setenvv/setenv.html
Windows 7の場合は以下の階層で環境変数(の設定)にたどり着けます。
コントロールパネル→システムとセキュリティ→システム→システムの詳細設定→環境変数
3.構成(Configure)
MySQL Clusterを構成します。構成には必要なディレクトリと、二つの構成ファイル(my.cnf, config.ini)を作成します。私の場合は、まず以下のようなディレクトリを作成し、
C:¥Users¥meiji¥my_cluster
その下に、以下の三つのディレクトリを作成し、
ndb_data
mysqld_data
conf
mysqld_dataの下に、mysql, ndbinfoという二つのディレクトリ
(これはmysqlのデータベースになります)、そしてconfの下に以下の二つのファイルを作成しました。(赤字が元ドキュメントからの変更点)
my.cnf
[mysqld]
ndbcluster
datadir=c:¥Users¥meiji¥my_cluster¥mysqld_data
basedir=c:¥Users¥meiji¥mysqlc
port=5000
character-set-server=utf8
config.ini
[ndb_mgmd]
hostname=localhost
datadir=c:¥Users¥meiji¥my_cluster¥ndb_data
id=1
[ndbd default]
noofreplicas=2
datadir=c:¥Users¥meiji¥my_cluster¥ndb_data
[ndbd]
hostname=localhost
id=3
[ndbd]
hostname=localhost
id=4
[mysqld]
id=50
4.実行(Run)
実行です。ndb_mgm -e showまでいければ安心。あとは、その下のmysqldの起動もお忘れなく。起動までうまくいき、再度ndb_mgm -e showを行うと、以下のような出力結果になります。
C:¥Users¥meiji¥my_cluster>c:¥Users¥meiji¥mysqlc¥bin¥ndb_mgm -e show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=3 @127.0.0.1 (mysql-5.1.47 ndb-7.1.8, Nodegroup: 0, Master)
id=4 @127.0.0.1 (mysql-5.1.47 ndb-7.1.8, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @127.0.0.1 (mysql-5.1.47 ndb-7.1.8)
[mysqld(API)] 1 node(s)
id=50 @127.0.0.1 (mysql-5.1.47 ndb-7.1.8)
トラブルシューティング
(i) Could neither create or open keyエラー
以下のようなエラーがでた場合には、起動しようとしたユーザに管理者権限がなく、レジストリが操作できない場合。
Could neither create or open key 'SYSTEM¥CurrentControlSet¥Services¥EventLog¥Application¥MySQL Clust
er Management Server', error: 5
Failed to setup event logging
管理者権限をもって実行する必要がある。コマンドプロンプトを管理者権限で実行する方法は以下をご参照ください。
Windows Vistaでプログラムを管理者モードで実行する(@IT)
(ii) Parse error
config.iniの記述が間違っている場合、以下のようなParse errorが発生する。修正して再度トライ。以下の例では6行目が違うとのこと。私は[ndbd default]をtypoで[ndb default]にしてしまってましたorz
2010-11-14 17:46:46 [MgmtSrvr] ERROR -- at line 6: Parse error
2010-11-14 17:46:46 [MgmtSrvr] ERROR -- at line 6: Could not parse name-value pair in config file
.
2010-11-14 17:46:46 [MgmtSrvr] ERROR -- Could not load configuration from 'conf¥config.ini'
2010-11-14 17:46:46 [MgmtSrvr] ERROR -- Could not determine which nodeid to use for this node. Sp
ecify it with --ndb-nodeid= on command line
5.テスト(Test)
無事実行できましたか? ここまできたらいろいろと試してみれますので、マニュアルで順に動作を追ったり、以下のドキュメントなどみつつ、実際に実行してみましょう!!
MySQL Cluster マニュアル(英語)
Getting Started with MySQL Cluster
【データベース夏の陣】MySQL Clusterを試す!(2008年奥野さんのweb記事)
MySQL Cluster マニュアル(日本語、少し古い)
過去にこういった資料もありました。概念などを手軽に知るにはグッドです。
MySQL Cluster 技術入門(2007年松信さんのpdf資料)
MySQL Cluster 最適構成(2006年廣濱さんのpdf資料)
6.安全なシャットダウン(Safely shut down)
安全にシャットダウン。まずSQLサーバ(SQL Node)そしてMySQL Clusterのシャットダウン。
では、みなさまもWindowsでMySQL Cluster体験してみてください。
PlanetMySQL Voting: Vote UP / Vote DOWN
MySQL Cluster Quick Start for Windows
1.ソフトウエアの取得(Get the software)
ダウンロードページからMySQL Clusterを入手します。現在のGAは7.1.8です。プラットフォームで「Microsoft Windows」を選択し、お使いのWindowsのbit数にあわせてバイナリを選択します。32-bitであれば「Windows (x86, 32-bit), ZIP Archive 7.1.8 168.2M
(mysql-cluster-gpl-noinstall-7.1.8-win32.zip) 」を、私の場合は、64-bitですので、以下のバイナリをダウンロードします。
Windows (x86, 64-bit), ZIP Archive 7.1.8 172.8M
(mysql-cluster-gpl-noinstall-7.1.8-winx64.zip) MD5: 4dbb9b6a5fad5ce5ed915e3c1295e6ab
ダウンロードしたバイナリが正しいものかどうかはMD5値の比較でわかります。Linux畑の人は十分承知のこの値ですが、Windowsではデフォルトで表示するすべがありませんので、fcivというツールなどを使ってダウンロードしたバイナリをチェックします。詳細は次のページをご参照ください。
ハッシュ値を利用してファイルの同一性をチェックする(@IT)
fcivを入れてチェックするとこんな感じでした。
C:¥Users¥meiji¥Downloads>fciv mysql-cluster-gpl-noinstall-7.1.8-winx64.zip
//
// File Checksum Integrity Verifier version 2.05.
//
4dbb9b6a5fad5ce5ed915e3c1295e6ab mysql-cluster-gpl-noinstall-7.1.8-winx64.zip
2.インストール(Install)
インストールはダウンロードしたファイル(zip)を任意のディレクトリに展開するだけです。展開先はドキュメントに倣ってユーザディレクトリ(C:¥Users¥ユーザ名)で行ってみます。私の場合はユーザ名meijiですので、以下に展開します。
C:¥Users¥meiji¥mysqlc
Windowsでのzipファイルの展開は大変遅いので、じっくり待ちましょう。この間に、展開されたコマンドが置かれるディレクトリ(C:¥Users¥meiji¥mysqlc¥bin)にパスを通しておくのもよいでしょう。
環境変数を変更する(@IT)
http://www.atmarkit.co.jp/fwin2k/win2ktips/189setenvv/setenv.html
Windows 7の場合は以下の階層で環境変数(の設定)にたどり着けます。
コントロールパネル→システムとセキュリティ→システム→システムの詳細設定→環境変数
3.構成(Configure)
MySQL Clusterを構成します。構成には必要なディレクトリと、二つの構成ファイル(my.cnf, config.ini)を作成します。私の場合は、まず以下のようなディレクトリを作成し、
C:¥Users¥meiji¥my_cluster
その下に、以下の三つのディレクトリを作成し、
ndb_data
mysqld_data
conf
mysqld_dataの下に、mysql, ndbinfoという二つのディレクトリ
(これはmysqlのデータベースになります)、そしてconfの下に以下の二つのファイルを作成しました。(赤字が元ドキュメントからの変更点)
my.cnf
[mysqld]
ndbcluster
datadir=c:¥Users¥meiji¥my_cluster¥mysqld_data
basedir=c:¥Users¥meiji¥mysqlc
port=5000
character-set-server=utf8
config.ini
[ndb_mgmd]
hostname=localhost
datadir=c:¥Users¥meiji¥my_cluster¥ndb_data
id=1
[ndbd default]
noofreplicas=2
datadir=c:¥Users¥meiji¥my_cluster¥ndb_data
[ndbd]
hostname=localhost
id=3
[ndbd]
hostname=localhost
id=4
[mysqld]
id=50
4.実行(Run)
実行です。ndb_mgm -e showまでいければ安心。あとは、その下のmysqldの起動もお忘れなく。起動までうまくいき、再度ndb_mgm -e showを行うと、以下のような出力結果になります。
C:¥Users¥meiji¥my_cluster>c:¥Users¥meiji¥mysqlc¥bin¥ndb_mgm -e show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=3 @127.0.0.1 (mysql-5.1.47 ndb-7.1.8, Nodegroup: 0, Master)
id=4 @127.0.0.1 (mysql-5.1.47 ndb-7.1.8, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @127.0.0.1 (mysql-5.1.47 ndb-7.1.8)
[mysqld(API)] 1 node(s)
id=50 @127.0.0.1 (mysql-5.1.47 ndb-7.1.8)
トラブルシューティング
(i) Could neither create or open keyエラー
以下のようなエラーがでた場合には、起動しようとしたユーザに管理者権限がなく、レジストリが操作できない場合。
Could neither create or open key 'SYSTEM¥CurrentControlSet¥Services¥EventLog¥Application¥MySQL Clust
er Management Server', error: 5
Failed to setup event logging
管理者権限をもって実行する必要がある。コマンドプロンプトを管理者権限で実行する方法は以下をご参照ください。
Windows Vistaでプログラムを管理者モードで実行する(@IT)
(ii) Parse error
config.iniの記述が間違っている場合、以下のようなParse errorが発生する。修正して再度トライ。以下の例では6行目が違うとのこと。私は[ndbd default]をtypoで[ndb default]にしてしまってましたorz
2010-11-14 17:46:46 [MgmtSrvr] ERROR -- at line 6: Parse error
2010-11-14 17:46:46 [MgmtSrvr] ERROR -- at line 6: Could not parse name-value pair in config file
.
2010-11-14 17:46:46 [MgmtSrvr] ERROR -- Could not load configuration from 'conf¥config.ini'
2010-11-14 17:46:46 [MgmtSrvr] ERROR -- Could not determine which nodeid to use for this node. Sp
ecify it with --ndb-nodeid=
5.テスト(Test)
無事実行できましたか? ここまできたらいろいろと試してみれますので、マニュアルで順に動作を追ったり、以下のドキュメントなどみつつ、実際に実行してみましょう!!
MySQL Cluster マニュアル(英語)
Getting Started with MySQL Cluster
【データベース夏の陣】MySQL Clusterを試す!(2008年奥野さんのweb記事)
MySQL Cluster マニュアル(日本語、少し古い)
過去にこういった資料もありました。概念などを手軽に知るにはグッドです。
MySQL Cluster 技術入門(2007年松信さんのpdf資料)
MySQL Cluster 最適構成(2006年廣濱さんのpdf資料)
6.安全なシャットダウン(Safely shut down)
安全にシャットダウン。まずSQLサーバ(SQL Node)そしてMySQL Clusterのシャットダウン。
では、みなさまもWindowsでMySQL Cluster体験してみてください。
PlanetMySQL Voting: Vote UP / Vote DOWN