2012年6月8日金曜日

MongoDBことはじめ【CentOS】

SumallyのけいたっぷさんがMongoDBを勧めていらっしゃったらしく
バイト先の社長が「MongoDBを使ってみたい!」と言い出した。
言語はphpです。これももちろん、けいたっぷさんがPHPerだから。

というような実に単純な理由によりMongoDBを使うことになった。
てなわけでその記録をここにまとめたい。

私の環境:Mac OS X 10.6.8(SnowLeopard)および CentOS 5.8(Linux)
開発言語:php(予定)(でもMongoDBはRubyとも相性いいよ!)

MongoDBとは - Wikipediaより

MongoDB は、高パフォーマンス、スキーマレス、オープンソースのドキュメント指向データベースである。C++言語で記述されている。[1] MongoDBはRDBMSではない。MongoDBは、BSONというJSONのバイナリ版のような形式でドキュメントを表現し、そのコレクションを管理する。この形式は、複雑な階層を持たせることができ、なおかつクエリやインデックスが容易である。これにより、多くのアプリケーションは、自身のネイティブなデータ型や構造に合った自然な方法でデータを格納できる。

ちなみにMongoDBはいま流行しているっぽい"NoSQL"らしいネ。
MySQLなんかより、カラムを気にせず色んなデータを突っ込めるみたい。

※参考

MongoDBを動かすにはCentOS?


MongoDBはCentOSで動かしているよーって記事が圧倒的に多い。
ので私たちも王道で攻めることにした。
けいたっぷさん曰く、どのOS上でも同じじゃない?ということでしたが、ぐぐってみると圧倒的にCentOSでやっている人が多いのです。
※ちなみに社員のちゃっぴー氏がMacOS上で動かそうとしてたけど、ちょっと難しかったっぽい。(MAMPでphpのローカル確認することも考えると)
※MAMPとは「アプリケーションフォルダにドラッグ&ドロップするだけで Apache, PHP, そして MySQL を Mac OS X にインストールすることができる。」そうである。ソースははてなキーワード。

CentOSを導入するには、VirtualboxやVMwareFusionでOSを自分のPCにつっこみます。
VMwareでやると比較的すいすい導入できました。Virtualboxでやっている人は中には苦労する人もいるみたいだ。

CentOS導入に関しては今回触れません。


さぁ試してみよう!


VMwareのターミナルは使いづらいので
(CentOSとMacの日本語キーボードと相性悪かったww)
Macのターミナルから使えるようにします。
ちなみに以下、sudoして使うものが多くなってくるので、
はじめからroot権限でターミナルいじった方がいいです。

$ su -

でルート権限に変更できます。
パスワード要求されると思うので、Macのパスワードいれてくださいね。

とりあえずCentOSのターミナルからIPアドレスを確認します。
#  /sbin/ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:5E:90:10
          inet addr:192.168.230.129  Bcast:192.168.230.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe5e:9010/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:28800 errors:13051 dropped:0 overruns:0 frame:0
          TX packets:15980 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:37731307 (35.9 MiB)  TX bytes:1002514 (979.0 KiB)
          Interrupt:67 Base address:0x2024
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1269 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1269 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2090390 (1.9 MiB)  TX bytes:2090390 (1.9 MiB)

この青い部分がIPアドレスです。

Macのターミナルに、
# ssh 192.168.230.129
とやって、MacのターミナルからCentOSにsshで入れるようにします。


で、ここからが本番です。
MongoDBが使えるようにしていきましょう。

自分がダウンロードしたCentOSのバージョン調べます。
バージョンごとにMongoDBの入れ方が違うようです。
私のCentOSのバージョンは、

# cat /etc/redhat-release
CentOS release 5.8 (Final)

です。

CentOSのbit数も確認しておきましょう。32bitと64bitだとインストールの仕方がちょいと違います。

# uname -mi
i686
i686なので、
私のはCentOS 5.8 32bitです。
ここがx86_64だと、64bitです。

これからyumでMongoDBをダウンロードします。
ダウンロードするために、とあるrepoファイルを作成します。
$ vi /etc/yum.repos.d/10gen.repo
で10gen.repoというファイルを作って中身を書いていくのですが、

私のように、32bitの人は、
[10gen]
name=10gen Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686
gpgcheck=0
と書いておきます。


64bitの人は、
[10gen]
name=10gen Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64
gpgcheck=0
です。

その後、コマンドを打ち、ダウンロード。
# yum install mongo-10gen mongo-10gen-server
で、MongoDBサーバーを起動。
#  /etc/init.d/mongod start
これで使えます。


# mongo
MongoDB shell version: 2.0.6
connecting to: test
mongoというコマンドが使えるようになりました。


CentOSを起動したら自動的に起動するようにするには、
$ chkconfig --add mongod 
と書いておきます。


次の記事では実際にいろいろといじってみたいです!!
書くかな。書きます多分。


ここがわかりやすいよっていう参考になるページ
ubuntuユーザーも参考になるね!!

 参考:
http://blog.madapaja.net/2011/09/20-mongodb-1-mongodbjp.html


【MongoDB関連記事】




0 件のコメント:

コメントを投稿