MongoDBのGUIツールの準備方法をまとめます。MongoDB Compassは公式が推奨するクライアントアプリケーションです。一方、MongoDB ExpressはWebアプリケーションですのでクライアント端末側の操作は一切不要になります。
前提
公式ドキュメント
参考になる公式ドキュメントを以下に示します。
動作確認済環境
- Rocky Linux 8.6
- Windows Server 2022
- MacOS 12.6
- Docker CE 20.10.21
- MongoDB Server 6.0.2
事前準備
MongoDB Serverの/etc/mongod.confのnet.bindIpに0.0.0.0を指定し、外部からの接続を許可する状態にしてください。netに関する設定を以下のように編集します。
# vi /etc/mongod.conf <omitted> # network interfaces net: port: 27017 bindIp: 0.0.0.0 #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. <omitted>
mongodを再起動し設定を反映されます。
systemctl restart mongod.service
tcp27017が0.0.0.0に対してListenの状態である事を確認します。
[root@linux010 ~]# ss -ano | grep 27017 u_str LISTEN 0 128 /tmp/mongodb-2701.sock 34786 * 0 tcp LISTEN 0 128 0.0.0.0:27017 0.0.0.0:*
MongoDB Compass
インストール手順
Windowsの場合
「MongoDB Compassのダウンロードサイト」をブラウザで開きます。
「Version」「Platform」「Package」を選択した状態で、「Download」を押下します。
デフォルトの場合はzip版のダウンロードになります。もし、msiファイルによるダウンロードをしたい場合は、「Platform」を「Windows 64-bit (7+) (MSI)」に変更するとmsiファイルをダウンロードできるようになります。
ダウンロードしたmsiファイルをダブルクリックで実行します。
基本的にウィザードに沿って「Next」の押下連続でインストール完了します。以下、注意点のみに絞って説明します。
インストール先のディレクトリを指定します。特に拘りがない場合は、デフォルト設定のまま「Next」を押下します。
「Install」を押下します。
「Finish」を押下します。
MacOSの場合
「MongoDB Compassのダウンロードサイト」をブラウザで開きます。
「Version」「Platform」「Package」を選択した状態で、「Download」を押下します。
ダウンロードしたdmgファイルをダブルクリックで実行します。
「MongoDB Compass.app」から「Applications」へドラッグ&ドロップします。
Spotlightに「MongoDB Compass」と入力する操作などで、MongoDB Compassを起動します。
接続文字列の指定方法
認証が存在しない場合
MongoDBへの接続方法はURIで指定します。もし、認証が必要ない場合は以下のように指定します。
mongodb://<MongoDBサーバのIPアドレス>:<MongoDBサーバのポート番号>
New Connectionの画面で接続先のURIを入力します。接続のみの操作をする場合は「Connect」を、接続情報を保存しつつ接続する場合は「Save & Connect」を押下します。
接続先に対して分かりやすい名前をつける事ができます。また、色の指定も可能です。入力完了後、「Save & Connect」を押下するとMongoDB Serverへの接続を試みます。
接続に成功すると、データベース一覧やホスト一覧(レプリカセット構成の場合は複数台が表示される)が表示されます。
認証が存在する場合
MongoDBへの接続方法時に、認証が求められる場合ははURIを以下のように指定します。
mongodb://<ユーザ名>:<パスワード>@<MongoDBサーバのIPアドレス>:<MongoDBサーバのポート番号>
New Connectionの画面で接続先のURIを入力します。接続のみの操作をする場合は「Connect」を、接続情報を保存しつつ接続する場合は「Save & Connect」を押下します。
一般的にこのようなURI指定をする場合はユーザやパスワードに記号やスペースを使用するに当たりURLエンコーディングが必要になる事もあります。例えば、パスワード「P@ssw0rd」をURLエンコードすると「P%40ssw0rd」になります。しかし、MongoDB Compassのパース処理は非常に賢いので、MongoDB Compassの場合に限ってはURLエンコードしなくても接続可能です。
接続先に対して分かりやすい名前をつける事ができます。また、色の指定も可能です。入力完了後、「Save & Connect」を押下するとMongoDB Serverへの接続を試みます。
接続に成功すると、データベース一覧やホスト一覧(レプリカセット構成の場合は複数台が表示される)が表示されます。
MongoDB Express
認証が存在する場合
MongoDB Serverが認証を求めない場合のMongoDB Expressの起動方法を説明します。
Dockerが使用可能な環境ならば、以下のような操作でMongoDB Exporessのコンテナが起動可能です。環境変数ME_CONFIG_MONGODB_URLに指定するMongoDB ServerのIPアドレスとポート番号は適宜の変更をお願いします。
docker run -d \ --name mongoex01 \ -p 8081:8081 \ -e ME_CONFIG_MONGODB_URL=mongodb://172.16.1.10:27017/ \ mongo-express:latest
ブラウザでtcp8081へ接続し、MongoDB Expressを閲覧できる事を確認します。
以下の操作でコンテナ削除が可能です。
docker container stop mongoex01 docker container rm mongoex01
認証が存在する場合
MongoDB Serverが認証を求める場合のMongoDB Expressの起動方法を説明します。
前述の操作例との違いは、環境変数ME_CONFIG_MONGODB_ADMINUSERNAMEとME_CONFIG_MONGODB_ADMINPASSWORDでユーザとパスワードを指定する違いだけです。
docker run -d \ --name mongoex02 \ -p 8081:8081 \ -e ME_CONFIG_MONGODB_ADMINUSERNAME=admin \ -e ME_CONFIG_MONGODB_ADMINPASSWORD=P@ssw0rd \ -e ME_CONFIG_MONGODB_URL=mongodb://172.16.1.9:27017/ \ mongo-express:latest
ブラウザでtcp8081へ接続し、MongoDB Expressを閲覧できる事を確認します。
以下の操作でコンテナ削除が可能です。
docker container stop mongoex02 docker container rm mongoex02