公式ドキュメントの通りにやればよろし。なのですが、せっかくやったし、他のマシンからの接続を許可する設定は巷にあふれている情報が古かったので手順書いてみます。

環境


  • Ubuntu16.04
  • MongoDB 3.4.5

インストール


以下はほぼ公式の手順の通りです。

GPGKey登録

1
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

source.list作成

/etc/apt/sources.list.d配下にmongodb-org-3.4.listを作成し、下記を記述します。記述内容はOSのバージョンやMongoDBのバージョンによって変える必要があるので公式のドキュメント見てください。下記はUbuntu16.04でMongoDBが3.4の場合です。

1
deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse

インストール

apt-get updateします。

1
apt-get update

パッケージインストールします。

1
apt-get install -y mongodb-org

バージョンを確認します。

1
mongo --version

MongoDB shell version v3.4.5
git version: 520b8f3092c48d934f0cd78ab5f40fe594f96863
OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016
allocator: tcmalloc
modules: none
build environment:
    distmod: ubuntu1604
    distarch: x86_64
    target_arch: x86_64

サービス起動

サービス起動して終わり。

1
service mongod start

接続許可設定


デフォルトでは127.0.0.1しか許可されていないので、他のマシンからも接続できるようにします。接続許可するIPを指定することになります。
/etc/mongod.confファイルのbindIpを下記のように[]で括って、カンマ区切りで記述します。

1
# network interfaces
net:
  port: 27017
  bindIp: [127.0.0.1,192.168.10.20]

後は、monogo ***.***.***.***:27017で許可したマシンから接続できればOKです。
なお、ワイルドカードによる指定はできない(?)ようです。単純にすべてのマシンから接続を許可するには0.0.0.0を記述すればよいですが、あんまよくないでしょうね。その場合はファイアウォール等で接続元IPを絞ってやる必要があると思います。

ちなみにネットではよく下記の記述を見かけますが3.x系の場合だと接続拒否されます。(3.x系では前述の[]付きの記述にする必要があります)

1
bindIp: 127.0.0.1, 192.168.10.20