Edited at

Mongodb への外部接続を許可する

More than 3 years have passed since last update.


環境

CentOS6.6

(参考)Ansible での Mongodb インストール

https://github.com/Chanmoro/ansible-sample/tree/master/roles/mongod


ローカル外からの接続

デフォルトのまま利用すると以下のようなエラーになり mongodb へのリモート接続ができません

$ mongo 192.168.56.101

MongoDB shell version: 3.0.2
connecting to: 192.168.56.101/test
2015-10-04T12:06:20.651+0530 W NETWORK Failed to connect to 192.168.56.101:27017, reason: errno:61 Connection refused
2015-10-04T12:06:20.653+0530 E QUERY Error: couldn't connect to server 192.168.56.101:27017 (192.168.56.101), connection attempt failed
at connect (src/mongo/shell/mongo.js:181:14)
at (connect):1:6 at src/mongo/shell/mongo.js:181
exception: connect failed


リモート接続を許可する

mongodb が listen するIPアドレスはデフォルトでは 127.0.0.1 に設定されており、ローカルからのみアクセスを許可するようになっています

mongod.conf の bind_ip に設定されたIPアドレスで listen するのでこれを変更することで外部からの接続を許可します

ここに 0.0.0.0 を設定すると全てのIPアドレスからの接続を許可します


/etc/mongod.conf

# Listen to local interface only. Comment out to listen on all interfaces.

bind_ip=0.0.0.0

複数のIPを設定することも可能です


/etc/mongod.conf

# Listen to local interface only. Comment out to listen on all interfaces.

bind_ip=127.0.0.1,192.168.56.101

mongod を再起動すると反映

$ service mongod restart

設定反映後はリモート接続ができるようになります

$ mongo 192.168.56.101

MongoDB shell version: 3.0.2
connecting to: 192.168.56.101/test
>
> show dbs
local 0.078GB
>