40歳からのキャリアチェンジ

20代はエンジニア・PM、30代はWeb系エンジニア向けのキャリアアドバイザー。40代の今はフリーランスで開発含めて色々やってます。技術ネタとしてはRuby/RailsとJavaScript関連あたり

024-MongoDBの環境作る

ここ2日更新滞りましたが、サーバーサイドはRuby+Sinatra+MongoDBみたいな感じでいこうかと思い、とりあえずMongoDB環境作ろうと思ったら意外と時間かかったからです・・

環境構築までの流れ

ここ最近はAM4:30頃には起きて6:00に家を出るという生活スタイルになっているので、起床してすぐMacPorts経由でビルドし始めたら、終わる気配がなかったので一旦中断して、その日帰宅してから夜に作業をして、自分が自由にできる時間は他になく結果これで1日潰れた

$ sudo port install mongodb
Password:
--->  Computing dependencies for mongodb
--->  Dependencies to be installed: boost libpcap pcre scons spidermonkey nspr
--->  Building boost
--->  Staging boost into destroot
--->  Installing boost @1.45.0_2
--->  Activating boost @1.45.0_2
--->  Cleaning boost
--->  Fetching libpcap
--->  Attempting to fetch libpcap-1.1.1.tar.gz from http://distfiles.macports.org/libpcap
--->  Verifying checksum(s) for libpcap
--->  Extracting libpcap
--->  Applying patches to libpcap
--->  Configuring libpcap
--->  Building libpcap
--->  Staging libpcap into destroot
--->  Installing libpcap @1.1.1_0
--->  Activating libpcap @1.1.1_0
--->  Cleaning libpcap
--->  Fetching pcre
--->  Attempting to fetch pcre-8.12.tar.bz2 from http://jaist.dl.sourceforge.net/pcre
--->  Verifying checksum(s) for pcre
--->  Extracting pcre
--->  Configuring pcre
--->  Building pcre
--->  Staging pcre into destroot
--->  Installing pcre @8.12_0
--->  Activating pcre @8.12_0
--->  Cleaning pcre
--->  Fetching scons
--->  Attempting to fetch scons-2.0.1.tar.gz from http://jaist.dl.sourceforge.net/scons
--->  Verifying checksum(s) for scons
--->  Extracting scons
--->  Applying patches to scons
--->  Configuring scons
--->  Building scons
--->  Staging scons into destroot
--->  Installing scons @2.0.1_0
--->  Activating scons @2.0.1_0
--->  Cleaning scons
--->  Fetching nspr
--->  Attempting to fetch nspr-4.8.7.tar.gz from http://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v4.8.7/src/
--->  Verifying checksum(s) for nspr
--->  Extracting nspr
--->  Configuring nspr
--->  Building nspr
--->  Staging nspr into destroot
--->  Installing nspr @4.8.7_0
--->  Activating nspr @4.8.7_0
--->  Cleaning nspr
--->  Fetching spidermonkey
--->  Attempting to fetch js-1.7.0.tar.gz from http://ftp.mozilla.org/pub/mozilla.org/js/
--->  Verifying checksum(s) for spidermonkey
--->  Extracting spidermonkey
--->  Applying patches to spidermonkey
--->  Configuring spidermonkey
--->  Building spidermonkey
--->  Staging spidermonkey into destroot
--->  Installing spidermonkey @1.7.0_4
--->  Activating spidermonkey @1.7.0_4
--->  Cleaning spidermonkey
--->  Fetching mongodb
--->  Attempting to fetch mongodb-src-r1.6.5.tar.gz from http://distfiles.macports.org/mongodb
--->  Verifying checksum(s) for mongodb
--->  Extracting mongodb
--->  Applying patches to mongodb
--->  Configuring mongodb
--->  Building mongodb
--->  Staging mongodb into destroot
--->  Installing mongodb @1.6.5_0
--->  Activating mongodb @1.6.5_0
--->  Cleaning mongodb

翌日の朝にとりあえず利用できるかどうか確認するため

$ which mongo
/opt/local/bin/mongo
$ mongo

としたら「mongodb couldn't connect to server 127.0.0.1」と怒られて利用できませんでした。

はて?なんでだろうと思って、gihyoの記事をひとまず頼りにして読み返していた所、

まずはサーバ本体のmongodを起動しましょう。--dbpathオプションに適当なディレクトリを指定してください。

という箇所が目に止まり、「あー、そっかmongodが最初から起動しているわけじゃないのか」とここで気づきいた所で2日目が潰れた
下記のようにしてmongodを起動&mongoコマンド入力したら問題なく利用出来るようになりました

mongod --dbpath=/Users/xxxxx/Dropbox/Public/learning_mongoDB/data &
[1] 72645
$ Thu Jan 20 06:32:17 MongoDB starting : pid=72645 port=27017 dbpath=/Users/xxxxx/Dropbox/Public/learning_mongoDB/data 64-bit 
Thu Jan 20 06:32:17 db version v1.6.6-pre-, pdfile version 4.5
Thu Jan 20 06:32:17 git version: nogitversion
Thu Jan 20 06:32:17 sys info: Darwin macbook-air.local 10.6.0 Darwin Kernel Version 10.6.0: Wed Nov 10 18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386 i386 BOOST_LIB_VERSION=1_45
Thu Jan 20 06:32:17 [initandlisten] waiting for connections on port 27017
Thu Jan 20 06:32:17 [websvr] web admin interface listening on port 28017

$ mongo
MongoDB shell version: 1.6.6-pre-
connecting to: test
>
> db.blogger.save({name:'小林 晋也',entry_point:'http://blog.pasonatech.co.jp/kobayashi/', entry_frequency:2.5})

db.blogger.save({name:'横田 真俊',entry_point:'http://blog.pasonatech.co.jp/yokota/', entry_frequency:20})

> 
> db.blogger.save({name:'横田 真俊',entry_point:'http://blog.pasonatech.co.jp/yokota/', entry_frequency:20})
> 
> db.blogger.find()
{ "_id" : ObjectId("4d3767e8b362d14a0a48ebdf"), "name" : "小林 晋也", "entry_point" : "http://blog.pasonatech.co.jp/kobayashi/", "entry_frequency" : 2.5 }
{ "_id" : ObjectId("4d3767f0b362d14a0a48ebe0"), "name" : "横田 真俊", "entry_point" : "http://blog.pasonatech.co.jp/yokota/", "entry_frequency" : 20 }
>