massの日記

日々の薪

女子部イベントに釣られてMongoDBをMacに入れてみた

昨日参加したMongoDB女子部Startupのイベントで、久しぶりにMongoDBという単語に触れた。MongoDBの特徴とか実際にイベントでお話された内容はこちらのブログで紹介されているので、自分はMac OS X(10.6.8)にMongoDBをインストールする部分だけ書いてみることにした。

まず、MongoDBのOfficialにあるQuickstart OS Xを見てみた。入れ方は2種類あって、バイナリからとPackage managersからのどちらか。今回はPackage managersで入れてみることにした。MacのPackage managersということで、MacPortとHomebrewが紹介されていて、最近会社で使い始めたHomebrewで入れてみることにしたが、そもそもHomebrewを自分のMacに入れていないことに気づいた。なのでやることは1つ増えた。

やること

  1. Homebrewのインストール
  2. MongoDBのインストール

まずはPackage managersのHomebrewから。こちらもオフィシャルにあるInstallationを見ていれる。nodeとかpowもそうだけどインストールはスクリプト化されていて、インストール作業は1行だけ。

$ ruby  -e "$(curl -fsSL https://raw.github.com/gist/323731)"

これでbrewのインストールが終わり。ただ、インストールの条件としてMacOS X 10.5以上、Intel CPU,XCode,Javaが必要。私の環境はこれらの条件を満たしていたので、上記のコマンド1行で行けた。
Homebrewをいれたので、今度はMongoDBのドキュメントに戻り、brewコマンドでMongoDBを入れる。

$ brew update
$ brew install mongodb

これでMongoDBのインストールも終わり。Quickstartの続きでは、下記の2行が書いてる。これはmongodbのDBファイルが格納される場所がデフォルトでは/data/db以下になっているために作成している。mongodbの起動時に--dbpathオプションでDBファイルの場所は任意のディレクトリに置き換えられるので自分の好きなディレクトリに作ってもいい。

$ sudo mkdir -p /data/db/
$ sudo chown `id -u` /data/db

いよいよ起動。

$ mongod 

オプションをつけないと下記のようなメッセージが出力される。プロセスID、使用ポート、DBファイルの各の場所、ホスト名、DBバージョン、Gitベージョン、ビルド情報、journalディレクトリの場所、webコンソールのポート番号が吐き出されている。後は、ローカルの54919ポートからのコネクション接続の確認?最後のだけよく意味がわからなかった。54919からの接続を受け入れ後、すぐにコネクションが閉じられているけど、これは何かに使うのだっけ。。

Sun Dec 11 14:39:45 [initandlisten] MongoDB starting : pid=36510 port=27017 dbpath=/data/db/ 64-bit host=kondou-misa-no-MacBook-Pro.local
Sun Dec 11 14:39:45 [initandlisten] db version v2.0.1, pdfile version 4.5
Sun Dec 11 14:39:45 [initandlisten] git version: 3a5cf0e2134a830d38d2d1aae7e88cac31bdd684
Sun Dec 11 14:39:45 [initandlisten] build info: Darwin erh2.10gen.cc 9.6.0 Darwin Kernel Version 9.6.0: Mon Nov 24 17:37:00 PST 2008; root:xnu-1228.9.59~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_40
Sun Dec 11 14:39:45 [initandlisten] options: {}
Sun Dec 11 14:39:45 [initandlisten] journal dir=/data/db/journal
Sun Dec 11 14:39:45 [initandlisten] recover : no journal files present, no recovery needed
Sun Dec 11 14:39:46 [websvr] admin web console waiting for connections on port 28017
Sun Dec 11 14:39:46 [initandlisten] waiting for connections on port 27017
Sun Dec 11 14:40:46 [clientcursormon] mem (MB) res:14 virt:2416 mapped:0
Sun Dec 11 14:40:59 [initandlisten] connection accepted from 127.0.0.1:54919 #1
Sun Dec 11 14:41:03 [conn1] end connection 127.0.0.1:54919

立ち上がったので、早速webコンソールにて確認。無事に動いている様子。
http://localhost:28017/

続いてターミナルからの接続を確認する。こちらも無事動いている様子。

$ mongo
$ > db.foo.save( { a : 1 } )
$ > db.foo.find()
$ { "_id" : ObjectId("4ee449c64b6d8bfb990f72d9"), "a" : 1 }

インストールと起動までは1時間弱で十分終了する。(自分の場合はrbenvやruby1.9.3のビルドもしてたから、2時間くらいかかったけど)
折角勉強会に出たんだし、実際にスライドで説明されていたものとかを自分の環境で動かしたいので、これからMongoDBの2系を家で触ってみようと思う。