CentOS 7にMongoDBをインストールする

通常、データベースというとRDBMSをイメージすると思うが、このMongoDBはRDBMSではなく、いわゆるNoSQLと呼ばれるものだ。
以下、Wikipediaから引用。

MongoDBはRDBMSではなく、いわゆるNoSQLと呼ばれるデータベースに分類されるものである。RDBMSのようにレコードをテーブルに格納するのではなく、「ドキュメント」と呼ばれる構造的データをJSONライクな形式で表現し、そのドキュメントの集合を「コレクション」として管理する(このデータの物理的な格納はBSONと呼ばれるJSONのバイナリ版といえる形式で行われる)。コレクションはRDBMSのような固定的なスキーマを持たない。ドキュメントには複雑な階層構造を持たせることもでき、それらの構造に含まれるフィールドを指定したクエリやインデクス生成も簡単な指定によって行える。RDBMSのように高度な結合操作を効率的に行うことはできないが、データの追加・更新・削除・クエリは高速に行うことができる。また、アプリケーションは自身の構造やデータ型に合った自然な形でデータを格納することができるため、扱うデータの特性によっては、RDBMSよりも容易かつ迅速に開発を行うことができる可能性がある。
Mongoという名前は、英語で「ばかでかい」を意味する "humongous" に由来する。
MongoDBの開発は10gen(現MongoDB Inc.)によって2007年10月から開始され、最初の公開リリースは2009年2月に行われた。

さて、今回はこのMongoDBをCentOS 7にインストールしてみる。

1.インストール

CentOS 7にMongoDBをインストールするために、まずはMongoDBのYumレポジトリを追加する。
「/etc/yum.repos.d/mongodb.repo」というファイルを作成する。

vi /etc/yum.repos.d/mongodb.repo

記述する内容配下。

[mongodb]
name=MongoDB repo
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=1

レポジトリファイルの作成が完了したら、以下のコマンドでMongoDBをインストールする。

yum install mongodb-org

以下、出力例。

[root@localhost ~]# yum install mongodb-org
読み込んだプラグイン:fastestmirror
mongodb                                                          |  951 B  00:00:00
mongodb/primary                                                  |  37 kB  00:00:01
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * epel: ftp.tsukuba.wide.ad.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: ftp.tsukuba.wide.ad.jp
mongodb                                                                         240/240
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ mongodb-org.x86_64 0:2.6.5-1 を インストール
--> 依存性の処理をしています: mongodb-org-shell = 2.6.5 のパッケージ: mongodb-org-2.6.5-1.x86_64
--> 依存性の処理をしています: mongodb-org-server = 2.6.5 のパッケージ: mongodb-org-2.6.5-1.x86_64
--> 依存性の処理をしています: mongodb-org-mongos = 2.6.5 のパッケージ: mongodb-org-2.6.5-1.x86_64
--> 依存性の処理をしています: mongodb-org-tools = 2.6.5 のパッケージ: mongodb-org-2.6.5-1.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ mongodb-org-mongos.x86_64 0:2.6.5-1 を インストール
---> パッケージ mongodb-org-server.x86_64 0:2.6.5-1 を インストール
---> パッケージ mongodb-org-shell.x86_64 0:2.6.5-1 を インストール
---> パッケージ mongodb-org-tools.x86_64 0:2.6.5-1 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

========================================================================================
 Package                     アーキテクチャー
                                             バージョン          リポジトリー      容量
========================================================================================
インストール中:
 mongodb-org                 x86_64          2.6.5-1             mongodb          4.6 k
依存性関連でのインストールをします:
 mongodb-org-mongos          x86_64          2.6.5-1             mongodb          6.8 M
 mongodb-org-server          x86_64          2.6.5-1             mongodb          9.0 M
 mongodb-org-shell           x86_64          2.6.5-1             mongodb          4.3 M
 mongodb-org-tools           x86_64          2.6.5-1             mongodb           89 M

トランザクションの要約
========================================================================================
インストール  1 パッケージ (+4 個の依存関係のパッケージ)

総ダウンロード容量: 109 M
インストール容量: 276 M
Is this ok [y/d/N]: y
Downloading packages:
(1/5): mongodb-org-2.6.5-1.x86_64.rpm                            | 4.6 kB  00:00:00
(2/5): mongodb-org-mongos-2.6.5-1.x86_64.rpm                     | 6.8 MB  00:00:06
(3/5): mongodb-org-server-2.6.5-1.x86_64.rpm                     | 9.0 MB  00:00:07
(4/5): mongodb-org-shell-2.6.5-1.x86_64.rpm                      | 4.3 MB  00:00:06
(5/5): mongodb-org-tools-2.6.5-1.x86_64.rpm                      |  89 MB  00:00:51
----------------------------------------------------------------------------------------
合計                                                       1.8 MB/s | 109 MB  01:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : mongodb-org-server-2.6.5-1.x86_64                       1/5
  インストール中          : mongodb-org-shell-2.6.5-1.x86_64                        2/5
  インストール中          : mongodb-org-tools-2.6.5-1.x86_64                        3/5
  インストール中          : mongodb-org-mongos-2.6.5-1.x86_64                       4/5
  インストール中          : mongodb-org-2.6.5-1.x86_64                              5/5
  検証中                  : mongodb-org-mongos-2.6.5-1.x86_64                       1/5
  検証中                  : mongodb-org-tools-2.6.5-1.x86_64                        2/5
  検証中                  : mongodb-org-shell-2.6.5-1.x86_64                        3/5
  検証中                  : mongodb-org-2.6.5-1.x86_64                              4/5
  検証中                  : mongodb-org-server-2.6.5-1.x86_64                       5/5

インストール:
  mongodb-org.x86_64 0:2.6.5-1

依存性関連をインストールしました:
  mongodb-org-mongos.x86_64 0:2.6.5-1        mongodb-org-server.x86_64 0:2.6.5-1
  mongodb-org-shell.x86_64 0:2.6.5-1         mongodb-org-tools.x86_64 0:2.6.5-1

完了しました!

2.MongoDBの有効化&起動

次に、MongoDBをOS起動時に自動起動するようにし、かつサービスを起動させる。
なお、MongoDBはsystemctlでの有効化は出来ないため、chkconfigでの有効化を行う。

chkconfig  mongod  on

さらに、以下のコマンドでMongoDBのサービスを手動起動させる。

systemctl start mongod

さて、それでは実際にMongoDBにアクセスしてみよう。
以下のコマンドを実行する。

mongo

無事、アクセスできることを確認した。

3.ファイアウォールの設定変更

最後に、ファイアウォールの設定で27017ポートを開放する。

firewall-cmd --zone=public --add-port=27017/tcp --permanent
firewall-cmd --reload

これで、外部からMongoDBへ接続出来るようになった。