【CentOS7】CentOS7でMongoDBをインストール~外部接続まで

2019年2月11日

今回はCentOS7上でMongoDBをインストールする方法を記載します。

※CentOS7より前のCentOSの場合はサービス起動やポート開放の方法が異なります。

 

MongoDBとは?

MongoDbはNoSQLデータベースの一種で、ドキュメント型のNoSQLに分類されます。

MongoDBはJavascriptインタプリタを使用しているため、Javascriptの記述でDB操作が行えるというのが特徴です。

 

MongoDBを設定する

yumの設定ファイルを作成する

まずはMongoDBをインストールしたいところなのですが、yumの設定ファイルを作成しないとyumでインストールできないようです。
/etc/yum.repos.d/の下にmongodb-org-4.0.repoというファイルを作成し、以下の内容を記載しましょう。

 
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/ gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc 

※4.0の部分はMongoDbのバージョンによって変更してください。

<2019/2/11追記>
上記の記載が誤っておりましたので修正しました。改行が入っていませんでしたので、追加しました。

MongoDBをインストールする

yumコマンドでインストールします。

sudo yum install -y mongodb-org

 

サービスを起動する

MongoDBのサービスを起動し、DBを使えるようにします。

sudo systemctl enable mongod.service
sudo systemctl start mongod.service

エラーが発生していなければOKです。

 

ポート開放をします

ポート開放をします。CentOS7からはiptableがなくなっており、firewallが代わりとなっています。

なので、こちらの設定を行います。

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

 

ポート開放の設定をしたら、firewallを再起動して設定を有効にします。

systemctl reload firewalld.service

 

外部接続を有効にする

/etc/mongod.confの以下の箇所を修正します。

# network interfaces
net:
	port: 27017
	bindIp: 0.0.0.0 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.

※bindIpが127.0.0.1になっていれば、0.0.0.0(IP制限無し)もしくは指定したIPに変更します。

これで外部接続が可能になります。

 

※他に調べて出てくるものではbind_ipとなっているかもしれないです。mongodbのアップデートで設定ファイルの記載が変わったようです。

 

最後に

これでMongoDBが外部から接続可能になります。割と簡単ですね。

とか言いつつ、CentOS7でiptable無くなっているの知らなくて、地味に詰まったりしたりしました…。

この記事が皆様の参考になれば幸いです。

 

参考

https://qiita.com/one-kelvin/items/b1740824da0b3e9af9dd

https://qiita.com/ongaeshi/items/bb17ebfbd4d22057c8fd

https://qiita.com/haisaihiroki/items/c38cb3c0a331db9b6f69

https://qiita.com/Chanmoro/items/cbf4e451d0a89f4d7c1a