CentOS5.4にyumでMongoDBをインストール

CentOS5.4にyumでMongoDBをインストールしてみる。

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


http://www.mongodb.org/display/DOCS/CentOS+and+Fedora+Packages を参考にパッケージの取得先を追加する。

# cat /etc/yum.repos.d/MongoDB.repo
[10gen]
name=10gen Repository
baseurl=http://downloads.mongodb.org/distros/centos/5.4/os/i386/
gpgcheck=0
enabled=1


yumでstable版をインストールする。

# yum search mongo
# yum install mongo-stable mongo-stable-debuginfo mongo-stable-devel mongo-stable-server

# rpm -aq | grep mongo
mongo-stable-devel-20100520-mongodb_1
mongo-stable-20100520-mongodb_1
mongo-stable-server-20100520-mongodb_1
mongo-stable-debuginfo-20100520-mongodb_1


今回インストールされたMongoDBのバージョンは1.4.2らしい。

# /usr/bin/mongod --version
db version v1.4.2, pdfile version 4.5
Tue May 25 01:10:24 git version: 53749fc2d547a3139fcf169d84d58442778ea4b0


一緒にインストールされた起動スクリプトを実行してプロセスを見てみる。
設定ファイルを喰わせてるようだ。

# /etc/init.d/mongod start
Starting mongod: all output going to: /var/log/mongo/mongod.log
forked process: 19073

# ps ax | grep mongo
19073 ?        Ssl    0:00 /usr/bin/mongod -f /etc/mongod.conf
19081 pts/1    R+     0:00 grep mongo


mongodの設定ファイル(デフォルト)で有効になっている値を見てみる。

# egrep '^[^#]' /etc/mongod.conf
logpath=/var/log/mongo/mongod.log
logappend=true
fork = true
dbpath=/var/lib/mongo


mongodが使用しているポート(デフォルト)は、27017?・・・なんか2つ出てきた。

# lsof -i | grep mongo
mongod    19073  mongod    5u  IPv4 359243       TCP *:27017 (LISTEN)
mongod    19073  mongod    7u  IPv4 359245       TCP *:28017 (LISTEN)


とりあえず対話シェルで試してみる。
データベースやコレクションは、データを保存すると自動的に作られる?

$ mongo
MongoDB shell version: 1.4.2
url: test
connecting to: test
type "help" for help
>
> use testdb
switched to db testdb
>
> for (var i = 1; i < 10; i++) db.testcoll.save({ key1: i, key2: i*2, key3: 'val-'+ i });
>
> db.testcoll.find();
{ "_id" : ObjectId("4bfaac75407cf9e2040dbbc6"), "key1" : 1, "key2" : 2, "key3" : "val-1" }
{ "_id" : ObjectId("4bfaac75407cf9e2040dbbc7"), "key1" : 2, "key2" : 4, "key3" : "val-2" }
{ "_id" : ObjectId("4bfaac75407cf9e2040dbbc8"), "key1" : 3, "key2" : 6, "key3" : "val-3" }
{ "_id" : ObjectId("4bfaac75407cf9e2040dbbc9"), "key1" : 4, "key2" : 8, "key3" : "val-4" }
{ "_id" : ObjectId("4bfaac75407cf9e2040dbbca"), "key1" : 5, "key2" : 10, "key3" : "val-5" }
{ "_id" : ObjectId("4bfaac75407cf9e2040dbbcb"), "key1" : 6, "key2" : 12, "key3" : "val-6" }
{ "_id" : ObjectId("4bfaac75407cf9e2040dbbcc"), "key1" : 7, "key2" : 14, "key3" : "val-7" }
{ "_id" : ObjectId("4bfaac75407cf9e2040dbbcd"), "key1" : 8, "key2" : 16, "key3" : "val-8" }
{ "_id" : ObjectId("4bfaac75407cf9e2040dbbce"), "key1" : 9, "key2" : 18, "key3" : "val-9" }
>
> quit();


設定ファイルの中で指定しているdbpathの場所にデータベースのファイルができていた。

$ ll -th /var/lib/mongo/
合計 81M
drwxr-xr-x 2 mongod mongod 4.0K  5月 25 01:42 _tmp
-rw------- 1 mongod mongod  64M  5月 25 01:42 testdb.0
-rw------- 1 mongod mongod  16M  5月 25 01:42 testdb.ns
-rwxr-xr-x 1 mongod mongod    6  5月 25 01:26 mongod.lock


もう1回対話シェルで接続して、今度はデータベースを削除してみる。

$ mongo
MongoDB shell version: 1.4.2
url: test
connecting to: test
type "help" for help
>
> use testdb
>
switched to db testdb
> db.dropDatabase()
{ "dropped" : "testdb.$cmd", "ok" : 1 }
>
> quit();


dbpathの場所からもデータベースのファイルが消えた。

$ ll -th /var/lib/mongo/
合計 8.0K
drwxr-xr-x 2 mongod mongod 4.0K  5月 25 01:42 _tmp
-rwxr-xr-x 1 mongod mongod    6  5月 25 01:26 mongod.lock


今日はここまで。

参考:
http://www.mongodb.org/display/DOCS/Home
http://www.mongodb.org/display/DOCSJP/Home
英語がサッパリなので翻訳してもらえるのはすごく有難い。