MongoDBに対して接続できるように環境を整えます。
前提としては下記記事のようにMongoDBがサーバにインストールされている状態となります。
完成イメージ
事前準備
サーバの状態によってやるべきことは変わってくるので必要があるかは要確認です。
今回はA5M2向けにやっていますが、他のツールなどで使用する場合にも同じような設定が必要になるでしょう。
MongoDB管理ユーザの登録
外部から接続する際に認証を行うようにするために管理ユーザを登録しておきます。
まだ外部から接続できるようにしていないので、前回同様MongoShellを使用します。
・MongoShellを起動
mongo
・adminに切り替え
use admin
・ユーザの登録
user名やパスワードは任意で入力して以下のコマンドを実行します。
db.createUser({user:"wantan", pwd:"wantan", roles:[{role:"root", db:"admin"}]})
・認証の有効化
mongod --auth --dbpath /var/lib/mongo
confファイルの設定
接続元を指定するconfファイルを書き換えます。
vim /etc/mongod.conf
・変更前(デフォルト)
# network interfaces net: port: 27017 bindIp: 127.0.0.1 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
・修正後
# 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.
もともとはローカルからのみの接続が許可されています。
FireWallの設定
外部から接続を行うためにファイアウォールの設定を行います。
・ファイアウォールの設定確認
firewall-cmd --list-all
私と同様の操作を行っていた場合、mongoはサービス設定されていないと思います。
・ファイアウォールの設定
firewall-cmd --zone=public --add-port=27017/tcp --permanent
再起動
firewall-cmd --reload
SELinuxの設定
すいません、SELinuxとは、については省略します。
個人利用や試しに実施する場合ではないときはしっかりと設定した方がいいです。
・状態確認
sudo getenforce
Enforcing
Permissive以外になっている場合には設定を行います。
・無効化
setenforce 0
ポートフォワーディング設定(VirtualBox)
VirtualBoxの場合のみ必要になります。
名前は任意で、ゲストポート側をmongoDBのポート番号に設定します。
※デフォルトは27017
ホストポートは使用していない任意のポート番号を設定します。
A5M2での接続
MongoDBへの接続するツールは専用のものも含めていくつか存在しますが、フリーツールのA5M2でも接続を行うことができます。
A5M2はインストールされていることが前提です。
データベースの追加
新規にデータベースの追加を行います。
MongoDBを選択します。
以下のように設定します。
各値はここまでで設定した内容のものを入力してください。
接続テストを行って以下が表示されればOKです。
追加を行うと以下のように表示されるので分かりやすい名前をつければOKです。
確認してみると以前の記事で追加したドキュメントが登録されているところまで確認できました。