MongoDBのデフォルトポートを変更する

mongodbのデフォルトポートは27017です。

これを仕様上変更したい場合もあればセキュリティ強化のためポート番号を変えたいときがあるでしょう。

今回はその説明をいたします。

まずは環境チェック

毎度おなじみの環境確認からしていきます。

$ mongod --version
db version v2.6.10
2019-04-29T07:00:25.356+0000 git version: nogitversion
2019-04-29T07:00:25.356+0000 OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.6 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.6 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial

mongodbのconfigファイルを変更する

mongodbには設定ファイルが存在しています。当たり前ですが(^_^;

そこを書きかえて再起動するだけの簡単な作業です。

$ sudo nano /etc/mongodb.conf

nanoはテキストエディタです。viでもvimでも構いません。

# mongodb.conf

# Where to store the data.
dbpath=/var/lib/mongodb

#where to log
logpath=/var/log/mongodb/mongodb.log

logappend=true

bind_ip = 0.0.0.0
#port = 27017

# Enable journaling, http://www.mongodb.org/display/DOCS/Journaling
journal=true

# Enables periodic logging of CPU utilization and I/O wait
#cpu = true

# Turn on/off security.  Off is currently the default
#noauth = true
#auth = true

# Verbose logging output.
#verbose = true

一部だけ記載しますが、こんな感じに書かれています。

# Where to store the data.
dbpath=/var/lib/mongodb

#where to log
logpath=/var/log/mongodb/mongodb.log

logappend=true

bind_ip = 0.0.0.0
#port = 27017

このコメントアウトされている#port = 27017のコメントを外して任意のport番号に変更するだけです。

例えば

port = 22222

などにしてみましょう。
他のアプリケーションが使っているポートと競合しないように注意してください。

MongoDBを再起動する

後はmongodbを再起動して終わりです。

$ sudo service mongodb restart

アクセスしてみる

$ mongo
MongoDB shell version: 2.6.10
connecting to: test
2019-04-29T07:44:40.625+0000 warning: Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused
2019-04-29T07:44:40.626+0000 Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed at src/mongo/shell/mongo.js:146
exception: connect failed

ちゃんと断られました。

$ mongo --port 22222
MongoDB shell version: 2.6.10
connecting to: 127.0.0.1:22222/test

うまくアクセス出来ましたね。

説明は以上です。1度試して見て下さい(・ω・)

あわせて読みたい