配置に接続
項目一覧
- 前提条件
- サポートされている MongoDB のバージョン
- インストール
mongosh
- MongoDB Atlas 配置への接続
- Atlas 接続文字列の取得
- データベースの認証情報の設定
- <mongosh> を使用した MongoDB Atlas への接続
mongosh
- デフォルト ポートでのローカル配置への接続
- デフォルト以外のポートでのローカル配置への接続
- リモート ホスト上の配置への接続
- 接続オプションの指定
- 認証を使用した接続
- OpenID Connect を使用した接続
- LDAP を使用した接続
- レプリカセットへの接続
- TLS を使用した接続
- 特定のデータベースへの接続
- プロキシ設定
- 別の配置への接続
- 現在の接続の検証
- 配置からの切断
- 非正規の配置
- 制限
このページでは、MongoDB Shell を使用して MongoDB 配置に接続する方法を説明します。MongoDB Shell を使用すると、MongoDB Atlas クラウドホスト型配置、ローカル配置、または別のリモート ホストに接続できます。
前提条件
MongoDB Shell を使用するには、接続する MongoDB 配置が必要です。
無料のクラウドホスト型配置には、MongoDB Atlas を使用できます。
MongoDB をローカル配置の実行方法については、「MongoDB のインストール」を参照してください。
サポートされている MongoDB のバージョン
MongoDB Shell を使用して MongoDB バージョン 4.2 以降に接続できます。
インストール mongosh
以下の手順は mongosh
がすでにインストールされていることを前提としています。mongosh
のインストールに関する詳細については、「mongosh
のインストール」を参照してください。
MongoDB Atlas 配置への接続
MongoDB Atlas 配置には、直接 shell から接続できます。
Atlas 接続文字列の取得
MongoDB Shell から接続するには、Atlas 接続文字列が必要です。MongoDB Atlas の接続文字列は、Atlas UI で取得できます。
詳細については、「MongoDB Atlas 接続文字列の特定」ガイドを参照してください。
データベースの認証情報の設定
データベース ユーザーの作成がまだ完了していない場合は、ユーザー名とパスワードの設定が必要です。 Atlasに接続するには、ユーザー名とともにAtlas接続stringを渡します。 connect コマンドを出すと、shell からパスワードの入力を求められます。
注意
詳細
mongosh
経由で Atlas に接続するには、他の接続セキュリティ オプションを使用できます。ピアリングまたはプライベート エンドポイント接続用のプライベート IP での接続については、「mongosh 経由での Atlas Connect」ドキュメントを参照してください。
デフォルト ポートでのローカル配置への接続
デフォルト ポート 27017 を使用して localhost で実行されている MongoDB の配置に接続するには、mongosh
をオプションなしで実行します。
mongosh
これは、次のコマンドと同等です。
mongosh "mongodb://localhost:27017"
デフォルト以外のポートでのローカル配置への接続
ローカルホストへの接続ポートを指定するには、次のいずれかを使用できます。
選択したポートとの接続文字列
--port
コマンドライン オプション
たとえば、以下は localhost ポート 28015 で実行中の配置への接続コマンドです。
mongosh "mongodb://localhost:28015"
mongosh --port 28015
リモート ホスト上の配置への接続
リモート ホストとポートを指定するには、次のいずれかを使用できます。
選択したホストとポートとの接続文字列。
--host
と--port
のコマンドライン オプション。--port
オプションを省略すると、mongosh
はデフォルトのポート 27017 を使用します。
たとえば、次のコマンドを使用すると、ホストmongodb0.example.com
とポート 28015 で実行されている MongoDB の配置に接続します。
mongosh "mongodb://mongodb0.example.com:28015"
mongosh --host mongodb0.example.com --port 28015
注意
MongoDB Atlas への接続
リモートホストが Atlas クラスターである場合は、Atlas UI から接続文字列をコピーできます。詳細については、Atlas ドキュメントの「クラスターへの接続」を参照してください。
接続オプションの指定
異なるタイプの配置に接続するには、異なる接続オプションを指定します。
認証を使用した接続
認証が必要な MongoDB 配置に接続するには、--username
と --authenticationDatabase
オプションを使用します。mongosh
ではパスワードの入力が指示されます。パスワードは入力時に非表示になります。
たとえば、admin
データベースでユーザー alice
として認証するには、次のコマンドを実行します。
mongosh "mongodb://mongodb0.example.com:28015" --username alice --authenticationDatabase admin
プロンプトを使用する代わりに、接続コマンドの一部としてパスワードを入力するには、--password
オプションを使用します。ドライバーのように、mongosh
をプログラムとして使用する場合は、このオプションを選択します。
Tip
以下も参照してください。
配置で認証を強制するには、「アクセス制御の有効化」を参照してください。
MongoDB 配置へのアクセスをプロビジョニングするには、「データベースユーザー」を参照してください。
OpenID Connect を使用した接続
OpenID Connect を使用して配置に接続するには、--authenticationMechanism
オプションを MONGODB-OIDC
に設定して使用します。mongosh
によってリダイレクトされる画面で、IdP のログイン情報を入力してください。
たとえば、次の例では、MONGODB-OIDC
を使用してローカル配置に接続しています。
mongosh "mongodb://localhost/" --authenticationMechanism MONGODB-OIDC
LDAP を使用した接続
LDAP を使用して配置に接続するには、以下に従います。
--username
を、security.ldap.authz.queryTemplate
または構成されたsecurity.ldap.userToDNMapping
テンプレートに準拠したユーザー名に設定します。--password
を適切なパスワードに設定します。--password
コマンドライン オプションにパスワードを指定しない場合は、mongosh
からパスワードの入力を求められます。--authenticationDatabase
を$external
に設定します。shell が$external
を変数と解釈するのを防ぐには、$external
引数を二重引用符ではなく一重引用符で囲む必要があります。--authenticationMechanism
をPLAIN
に設定します。
警告
LDAP 認証でワンタイム パスワードを使用する場合は、接続失敗の可能性を減らすために、接続文字列 オプションmaxPoolSize=1&srvMaxHosts=1
を接続文字列に追加することをお勧めします。
MongoDB 配置の --host
と --port
を、配置に関連するその他のオプションとともに含めます。
たとえば、次の操作は、LDAP 認証と承認で実行されている MongoDB 配置に対して認証を行います。
mongosh --username alice@dba.example.com --password --authenticationDatabase '$external' --authenticationMechanism "PLAIN" --host "mongodb.example.com" --port 27017
レプリカセットへの接続
レプリカセットに接続するには、次のいずれかの方法を実行します。
DNS シードリスト接続形式を使用する。
接続文字列でレプリカセット名とノードを明示的に指定する。
オプション1: DNS シードリスト形式
DNS シードリスト接続形式を使用するには、接続文字列に+srv
修飾子を含めます。
たとえば、server.example.com
上のレプリカセットに接続するには、次のコマンドを実行します。
mongosh "mongodb+srv://server.example.com/"
注意
+srv TLS の動作
+srv
接続文字列修飾子を使用すると、MongoDB は --tls
接続オプションを true
に自動的に設定します。この動作を上書きするには、--tls
を false
に設定します。
オプション 2: 接続文字列におけるノードの指定
レプリカセット ノードを個別に接続文字列で指定できます。
たとえば、replA
という名前の 3 ノードのレプリカセットに接続するには、次のコマンドを実行します。
mongosh "mongodb://mongodb0.example.com.local:27017,mongodb1.example.com.local:27017,mongodb2.example.com.local:27017/?replicaSet=replA"
注意
directConnection パラメーターは自動的に追加されます
接続文字列で個々のレプリカセット ノードを指定すると、次のいずれかが true である場合を除き、mongosh
は directConnection=true
パラメーターを自動的に追加します。
接続文字列に
replicaSet
クエリパラメーターが存在する。接続文字列が
mongodb+srv://
接続文字列フォーマットを使用している。接続文字列に複数のホストを含むシードリストが含まれている。
接続文字列に
directConnection
パラメーターが既に含まれている。
directConnection=true
の場合、すべての操作は接続 URI で指定されたホスト上で実行されます。
TLS を使用した接続
TLS を使用して配置に接続するには、次のいずれかの方法を選択できます。
DNS シードリスト接続形式を使用します。
+srv
接続文字列修飾子が、接続用オプションのtls
を自動的にtrue
に設定します。たとえば、
tls
が有効になっている DNS シードリストを定義済みのレプリカセットに接続するには、次のコマンドを実行します。mongosh "mongodb+srv://server.example.com/" 接続文字列で
--tls
オプションをtrue
に設定します。たとえば、接続文字列オプションで
tls
を有効にするには、次のコマンドを実行します。mongosh "mongodb://mongodb0.example.com:28015/?tls=true" --tls
コマンドライン オプションを指定します。たとえば、
tls
が有効になっているリモート ホストに接続するには、次のコマンドを実行します。mongosh "mongodb://mongodb0.example.com:28015" --tls
特定のデータベースへの接続
特定のデータベースに接続するには、接続文字列の URI パスでデータベースを指定します。URI パスでデータベースを指定しない場合は、test
データベースに接続します。
たとえば、localhost 上のデータベース「qa
」に接続するには、次のコマンドを実行します。
mongosh "mongodb://localhost:27017/qa"
プロキシ設定
プロキシ構成との接続を確立するには、次の環境変数を使用できます。
変数 | 説明 | 例 | |
---|---|---|---|
MONGODB_PROXY | データベース クラスターなど、 mongodb:// とmongodb+srv:// URL へのプロキシ接続。 | 次の例では、TLS が有効になっている
| |
HTTP_PROXY |
| 次の例えでは
| |
HTTPS_PROXY |
| 次の例では、TLS を使用せずに
| |
ALL_PROXY | 指定された URL へのすべての接続をプロキシします。 | 次の例では、URL に認証情報が含まれる
| |
NO_PROXY | プロキシから除外するホスト名のコンマ区切りリスト。 | 次の例では、
|
注意
mongosh
は、次のプロキシ タイプをサポートします。
Socks 5プロキシ
HTTP プロキシ
CONNECT プロキシ
以前にリストされたプロキシのいずれかに解決されるPAC URL
別の配置への接続
MongoDB Shell の配置にすでに接続している場合は、Mongo()
または connect() メソッドを使用して、MongoDB Shell 内から別の配置に接続できます。
これらのメソッドを使用して別の配置に接続する方法については、「新しい接続の開き方」を参照してください。
現在の接続の検証
現在のデータベース接続を確認するには、db.getMongo()
メソッドを使用します。
このメソッドでは、現在の接続の接続文字列 URIが返されます。
配置からの切断
配置から切断して mongosh
を終了するには、次のいずれかのアクションを実行します。
.exit
、exit
、またはexit()
と入力します。quit
またはquit()
と入力します。Ctrl
+D
を押します。Ctrl
+C
を 2 回押します。
非正規の配置
非正規の MongoDB インスタンスに接続すると、shell に警告メッセージが表示されます。非正規品のインスタンスは、機能が不足していたり、整合性や完全性に不備があったりするため、正規の MongoDB インスタンスと動作が異なる場合があります。
制限
Kerberos 認証では、
authMechanismProperties=CANONICALIZE_HOST_NAME:true|false
を接続文字列で使用できません。代わりに、次のいずれかを使用します。authMechanismProperties=CANONICALIZE_HOST_NAME:forward
authMechanismProperties=CANONICALIZE_HOST_NAME:forwardAndReverse
authMechanismProperties=CANONICALIZE_HOST_NAME:none
mongosh
は、現在、zlib
コンプレッサーのみをサポートしています。次のコンプレッサーはサポートされていません。zstd
snappy
mongosh
2.0.0 以降で起動する場合接続文字列内のブール値には次の条件があります。
true
またはfalse
を使用する必要があります。true
の代わりに、1
、y
、yes
、またはt
を使用できません。false
の代わりに、-1
、0
、n
、no
、またはf
を使用できません。