ゴールデンウィークはMongoDBインストール
★ブログ移行のお知らせ
サイトを移行しました。以下をクリックください。
きよしの倶楽部 – 生活を潤わす情報を発信中。GTDを得意としてます。
今まではちょっとした遊びとして使っていた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が振られて挿入できているみたいです。