ゴールデンウィークはMongoDBインストール

★ブログ移行のお知らせ
サイトを移行しました。以下をクリックください。
きよしの倶楽部 – 生活を潤わす情報を発信中。GTDを得意としてます。


ーーー
今週のお題「2013年のゴールデンウィーク

今まではちょっとした遊びとして使っていたMongoDB。ここにきて本業の方でとあるツール用に必要になったため、まじめにセットアップ。まずはMACローカル環境構築。

[このーき、何の木、きになる木♪・・・]

HOMEBREWはインストール済みなので、インストールは至って簡単。

XXX-Mac-mini:~ XXX$ brew install mongodb
==> Downloading http://fastdl.mongodb.org/osx/mongodb-osx-x86_64-2.4.1.tgz
######################################################################## 100.0%
==> Caveats
To have launchd start mongodb at login:
    ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents
Then to load mongodb now:
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
Or, if you don't want/need launchctl, you can just run:
    mongod
==> Summary
🍺  /usr/local/Cellar/mongodb/2.4.1-x86_64: 20 files, 314M, built in 21 seconds

難なく完了。ちなみに'brew update'と'brew upgrade mongodb'でversion2.4.3までアップデートされます。

自動起動はいらんのでシンボリックリンクやlaunchctlは無視して、シェルとしてコマンド実行。

XXX-Mac-mini:~ XXX$ mongod &
[1] 10500
all output going to: /usr/local/var/log/mongodb/mongo.log

んー、ちょいログの場所がよろしくない。/usr/local/etc/mongod.confで都合の良い場所に。自分は/var/logに集めてconsole.appで見るタイプなので、そうなるように修正。で、いよいよmongoコマンドでDBにつないでみましょう!

XXX-Mac-mini:~ XXX$ mongo
MongoDB shell version: 2.4.3
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
	http://docs.mongodb.org/
Questions? Try the support group
	http://groups.google.com/group/mongodb-user
Server has startup warnings: 
Thu May  2 21:06:12.926 [initandlisten] 
Thu May  2 21:06:12.926 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
>

最後にソフトリソースリミットが低いと言われてますが、Deamon起動ではないので、ひとまず無視。デフォルトのplistにはちゃんと記載されているのでLaunchctlで立ち上げればよいのでしょうか。やはり、気になるので方向転換。Deamon化します。インストール時に指示されたコマンドを実行するだけです。

XXX-Mac-mini:~ XXX$ ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents
/Users/XXX/Library/LaunchAgents/homebrew.mxcl.mongodb.plist -> /usr/local/opt/mongodb/homebrew.mxcl.mongodb.plist
XXX-Mac-mini:~ XXX$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist

psで起動確認

XXX-Mac-mini:~ XXX$ ps -ef|grep mongod
  501 11948  3421   0 10:30PM ??         0:01.47 /usr/local/opt/mongodb/mongod run --config /usr/local/etc/mongod.conf

OK。unloadで終了確認。

XXX-Mac-mini:~ XXX$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
XXX-Mac-mini:~ XXX$ ps -ef|grep mongod
  501 12034 10392   0 10:34PM ttys000    0:00.00 grep mongod

みごとにプロセスは消えてなくなりました。もう一度起動して今度は起動ログ確認。

***** SERVER RESTARTED *****


Thu May  2 22:37:24.402 [initandlisten] MongoDB starting : pid=12091 port=27017 dbpath=/usr/local/var/mongodb 64-bit host=XXX-Mac-mini.local
Thu May  2 22:37:24.403 [initandlisten] db version v2.4.3
Thu May  2 22:37:24.403 [initandlisten] git version: fe1743177a5ea03e91e0052fb5e2cb2945f6d95f
Thu May  2 22:37:24.403 [initandlisten] build info: Darwin bs-osx-106-x86-64-1.local 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun  7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_49
Thu May  2 22:37:24.403 [initandlisten] allocator: system
Thu May  2 22:37:24.403 [initandlisten] options: { bind_ip: "127.0.0.1", command: [ "run" ], config: "/usr/local/etc/mongod.conf", dbpath: "/usr/local/var/mongodb", logappend: "true", logpath: "/var/log/mongodb/mongo.log" }
Thu May  2 22:37:24.404 [initandlisten] journal dir=/usr/local/var/mongodb/journal
Thu May  2 22:37:24.404 [initandlisten] recover : no journal files present, no recovery needed
Thu May  2 22:37:24.503 [websvr] admin web console waiting for connections on port 28017
Thu May  2 22:37:24.503 [initandlisten] waiting for connections on port 27017

変なとこはなさそうです。

ではDB操作してみましょう。公式サイトに記載の通りtestデータベース(デフォルトのDB)にテストコレクション(実験レコード)をinsertしてリトリーブしてみましょう。(しかし、分かりにくい説明ですよね、公式サイト。。。)

> db.test.save( { a: 1 } )
> db.test.find()
{ "_id" : ObjectId("51825b041d163ec8fdce664c"), "a" : 1 }
> 

ちゃんとidが振られて挿入できているみたいです。