MongoDB on Windows

MongoDBはWindows上でも動かすことができる。
今回,互換性テストのため,最新版(執筆時点で1.8.2)より一つ前のリリースとなる1.6.5を試すために,Windows上にインストールしてみた。

参考:「Windows Service」 http://www.mongodb.org/display/DOCS/Windows+Service
蛇足ながら,MongoDBは「A.B.C」というバージョンナンバーを付ける。Aはメジャーバージョン番号。1.0.0が最初のGA版であるから,現在はメジャーバージョン番号は1のみである。
Bがリリース番号。0から始まり,偶数版がその時点の安定版。奇数は開発版である。リリースが新しくなったということは,新機能の追加など,ある程度まとまった変更があったことを意味し,旧版に対する互換(バックワードコンパチビリティー)が取れなくなる可能性もあるとしている。
Cがリビジョン番号。これは障害修正などの細かい修正。

1. MongoDBのダウンロードとインストール

さて,Windows版,しかも旧リリース1.6.5であるが,まずダウンロードのページ( http://www.mongodb.org/downloads )から,Windows版を探し,ダウンロードする。今回はWindows Server 2008 R2にインストールしたため,Windows 64bit版を選択した。

ダウンロードしたファイルは,mongodb-win32-x86_64-1.6.5.zip である。ちなみに32bit版はx86_64のところがi386になっている。

次にこのZipファイルを解凍する。一応通常のソフトのまねをして,C:Program FilesMongoDB というフォルダを作り,さらにその下にbinフォルダも作り,そこに「~.exe」のファイルをすべてコピーした。それ以外のファイルは MongoDB フォルダの下に格納した。

続いて,データ格納用のフォルダを作る。私のマシンは,D:ドライブがデータ用のHDDドライブになっているので,ここに D:MongoDB というフォルダを作成。さらにこの下にdataとlogというフォルダを作り,データファイルとログが混ざらないようにする。

2. 動作確認

まず,一応動作確認をする。コマンドプロンプトを開き,C:Program FilesMongoDBbin に移動。続いて以下をタイプする。

mongod –logpath d:MongoDBlogmongod.log –logappend –dbpath d:MongoDBdata –directoryperdb

すべての出力は,この d:MongoDBlogmongod.log に行ってしまうが,その間際にこういうメッセージが出る。
all output going to: d:MongoDBlogmongod.log
これで制御が戻ってこなければ,mongodが動き続けていると思っていいだろう。
ログファイルの中身を確認すると,最後の2行が以下のようになっているはず。

[initandlisten] waiting for connections on port 27017
[websvr] web admin interface listenig on port 18017

続いて,もう一つコマンドプロンプトを開き,実際にデータを入れてみる。

C:Program FilesMongoDBbin>mongo
MongoDB shell version: 1.6.5
connecting to: test
> show dbs
admin
local
> use mytest
switched to db mytest
> db.mycollection.save ( {_id:1, title:”Yahoo”, text:”world!” } )

ここまで何も起きないが,これでmytestというデータベース,およびmycollectionというコレクション(テーブル)ができているはず。

> show dbs
admin
local
mytest

> show collections
mycollection
system.indexes
> db.mycollection.find()
{ “-d” : 1, “title” : “Yahoo”, “text” : “world!” }

データもちゃんと入っていた。
とりあえず,このぐらいテストすれば十分だろう。

> exit
bye

C:Program FilesMongoDBbin>

mongodのプロセスもCtrl-Cで一旦終了する。

3. MongoDBサービスの登録

次に,このプロセスをサービスとして登録する。
これには,先ほどのmongodコマンドに–installを付けて発行するだけでいいのだが,Windows 7,Windows Server 2008などの場合は,コマンドプロンプトをAdministrator権限で開始しないとうまくいかないので注意。
それと,このあと,セキュリティーの設定を行うにあたり,構成ファイルを作り,先ほどmongodコマンドに与えた引数をすべてファイルに入れてしまう。これにより,その後の構成変更が楽になる。

試行錯誤の末,この構成ファイルのPath名として,空白文字が入ると,サービス起動がうまくいかないことが分かった。つまり,”C:Program Files”の先には置けない(引用符でくくってもうまくいかなかった)。
で,今回はテストが目的なので,適切かどうかはもう一つ検討の余地があるが,とりあえず,D:MongoDBフォルダ直下に,mongod.confという構成ファイルを置くことにした。Windows版のZipファイルには構成ファイルの雛形が入っていないので,中身は一から作らないとならない。
この中身は,以下のようになる。

logpath=D:MongoDBlogmongod.log
logappend=true
dbpath=D:MongoDBdata
directoryperdb=true

なお,Linux版には fork=true というパラメタがデフォルトで入っているが,これはWindows版では無効で,起動時にエラーとなるので,入れないこと。

サービスとして登録するコマンドラインとしては,この構成ファイルを -f パラメタで指定する。

C:Program FilesMongoDBbin>mongod -f d:MongoDBmongod.conf –install
Creating service MongoDB.
Service creation successful.
Service can be started from the command line via ‘net start “MongoDB”‘.

C:Program FilesMongoDBbin>

このあと,最後の行にあるとおり,netコマンドでサービスを開始してもいいし,サービス画面からサービスを開始してもいい。

コマンドプロンプトから起動したときと,同様のテストをすれば,サービスとして正しく起動できたかどうか確かめられる。

セキュリティー設定については,前回Linux版で説明したものと同じなので,割愛する。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です