Compass 接続エラー
項目一覧
このページのセクションでは、MongoDB Compass に接続するときに発生する一般的なエラーをリストアップし、考えられる解決策を提供します。
提供されたホストおよびポートで MongoDB が実行されていない
Compass が指定されたホストとポートでデータベースに接続する際に、接続が失敗しました。
考えられる原因
このエラーは、次の場合に多く発生します。
MongoDB Compass 接続ダイアログにホスト名を入力していないか、無効なホスト名を指定した。
正しくないポートで行われた接続を宛先サーバーが拒否した。
MongoDB クラスターまたはサーバーがシャットダウンされたか、サーバーのホスト名が変更された。
ファイアウォールがローカル ネットワーク間の接続をブロックしている。
ソリューション
この問題の解決方法は、MongoDB 環境の構成方法によって異なる場合があります。考えられる解決策を表示するには、MongoDB 環境に適したタブを選択してください。
セルフホスト型の MongoDB サーバー、レプリカセット、またはクラスターを利用する場合は、これらの解決策をお試しください。
MongoDB インスタンスが起動していることを確認する
Compass は実行中の MongoDB インスタンスに接続する必要があります。MongoDB がインストールされており、実行中の mongod プロセスがあることを確認してください。また、MongoDB インスタンスが実行されているポートが、Compass 接続ダイアログで指定したポートと一致していることも確認する必要があります。
必要な構成ファイルの設定: bindIp
MongoDB データベースサーバーを最近インストールし、そのサーバーへの初期接続を確立できない場合は、有効な net.bindIp
設定をサーバー構成ファイルで指定していることを確認してください。
ホスト名とポート
セルフホスト型サーバーがnet.bindIp
経由で外部ネットワークをリッスンしている場合は、Compass 接続ダイアログで、Hostname、Portが正しく指定されていることを確認してください。
MongoDB Server が移転または停止した
MongoDB クラスタやサーバが停止されたか、ホスト名が変更された可能性があります。データベースのステータスの最新情報については、データベース管理者に問い合わせてください。
ファイアウォール
データベースが動作しているポートへの接続が、ファイアウォールによってブロックされていると思われる場合は、自宅やインターネットカフェのネットワークなど、別の場所から接続してみてください。さまざまなポートへの接続をテストするには、http://portquiz.net/ を参照してください。
Atlas クラスターに接続する場合は、まず Atlas ドキュメントの Compass 経由で接続ページに記載されている手順に従います。この手順を行うと、接続設定が Atlas に最適化されていることを確認できます。
MongoDB Server が移転または停止した
MongoDB クラスタやサーバが停止されたか、ホスト名が変更された可能性があります。データベースのステータスの最新情報については、データベース管理者に問い合わせてください。
ファイアウォール
データベースへの接続がファイアウォールによってブロックされていると思われる場合は、自宅やインターネットカフェのネットワークなど、別の場所から接続してみてください。
Atlas クラスターはポート 27017 で動作します。クラスターにアクセスするには、このポートにアクセスできる必要があります。ローカル ネットワークがポート 27017 への接続をブロックしているかどうかを確認するには、 http://portquiz.net:27017/ にアクセスしてください。
Atlas IP ホワイトリストにアドレスが含まれていない
Atlas は、IP ホワイトリスト プロジェクトにリストされているアドレスからのクラスターへの接続のみを許可します。クラスターに接続できるように、IP アドレスをホワイトリストに登録していることを確認してください。
ドキュメントの挿入ボタンが無効になり、ドキュメントを修正できない
Compass を使用すると、書き込み操作が実行できず、データの読み取りのみ実行できる状態になる場合があります。
考えられる観察
この状態にあるとき:
Create Collection ボタンと Insert Document ボタンは無効になります。
ドキュメントは変更できません。
考えられる原因
この動作には、次の 2 つの原因が考えられます。
クラスターのセカンダリ ノードに接続しています。このノードは書き込み操作をサポートしていません。
書込み操作をサポートしていないCompass Readonlyエディションを使用している。
ソリューション
読み込み設定(read preference)設定を確認する
Compass [接続ダイアログ] で、Read Preference を Primary に設定します。これにより、書き込み (write) 操作をサポートするクラスターのプライマリ ノードに確実に接続できるようになります。
レプリカセット名の確認
Replica Set Nameが正確であることを確認してください。Compass は、レプリカセット名が正確な場合にのみ、プライマリを正しく識別できます。
クラスターが Atlas でホストされている場合は、以下の手順を使用して正しいレプリカセット名を取得できます。
Atlas Clusters ビューに移動します。
希望するクラスターで [Connect] をクリックします。
[Connect with MongoDB Compass] をクリックします。
指定された接続文字列をコピーします。
MongoDB Compass を開きます。
Yes をクリックすると接続設定が自動入力されます。
Compass Edition を確認する
Compass Readonlyエディションでは書込み操作を実行できません。最上位の Compass ドロップダウン メニューを開いてAbout MongoDB Compassを選択すると、Compass エディションを確認できます。
書き込み操作を実行するには、MongoDB Compass の別のエディションをダウンロードする必要があります。Compass エディション間の違いの詳細については、Compass エディションの機能を参照してください。
クラスター シャードへの接続が閉じました
このエラーは、MongoDB クラスターへの接続が初期設定が完了する前に閉じられたことを意味します。
考えられる観察
MongoDB Compass に次のようなエラーが表示される場合があります。
connection 3 to cluster0-shard-00-00-a1b2c.mongodb.net:27017 closed
考えられる原因
このエラーの最も一般的な原因は、Compass が実行されているパブリック IP アドレスの Atlas IP ホワイトリストにエントリがないことです。
解決法
Compass が実行されているパブリック IP アドレスが Atlas プロジェクトの IP ホワイトリストに含まれていることを確認します。
Atlas のホワイトリストを設定するには:
Atlas の左上にあるContextドロップダウンを使用して、目的の Atlas プロジェクトを選択します。
[Security] タブをクリックします。
「IP Whitelist」メニュー・オプションをクリックします。
IP アドレスがホワイトリストにない場合は、 Add IP Addressをクリックします。
[Add Current IP Address] をクリックします。
[Confirm] をクリックします。
Atlas は、ホワイトリスト内のどのエントリに現在の IP アドレスが含まれているかを認識し、これらのアドレスに(includes your current IP address)を追加します。
プライマリでもセカンダリでもない場合は書き込み不可
このエラーメッセージは、正しいレプリカセット名を指定せずにレプリカセットのセカンダリ メンバーの 1 つに接続したため、 Read Preference のプライマリ メンバーへの接続が必要になったことを示しています。
ソリューション
Atlas レプリカセット名の確認
MongoDB Compass 接続ダイアログで正しいレプリカセット名を指定していることを確認する必要があります。
クラスターが Atlas でホストされている場合は、以下の手順を使用して正しいレプリカセット名を取得できます。
Atlas Clusters ビューに移動します。
希望するクラスターで [Connect] をクリックします。
[Connect with MongoDB Compass] をクリックします。
指定された接続文字列をコピーします。
MongoDB Compass を開きます。
Yes をクリックすると接続設定が自動入力されます。
Compass によるセカンダリへの接続を許可する
このエラーを解決するもう 1 つの方法は、Compass がセカンダリ クラスター ノードに接続できるようにすることです。接続設定のRead Preference をPrimary Preferred かSecondary Preferred に変更します。これにより、このエラーを回避して接続できるようになります。
注意
セカンダリ クラスター ノードに接続する場合、ドキュメント、インデックス、またはデータベースを作成または変更することはできません。書込み操作を実行する必要がない場合にのみ、このソリューションを使用してください。
認証の失敗
Compass を使用してクラスターに接続しようとすると、Authentication Failedというエラーメッセージが表示される場合があります。
考えられる原因
このエラー メッセージは、多くの場合、次の 5 つの条件のいずれかの結果です。
コピーされた接続文字列から接続の詳細を自動入力した後、 Passwordが見つかりません。Compass では、セキュリティ上の予防措置として、接続ダイアログにパスワードを手動で入力する必要があります。
Username や Password が正しくありません。
Atlas クラスターに MongoDB ユーザーを設定していません。
正しい Authentication メソッドを選択しませんでした。
正しい Authentication Databaseが指定されていません。この設定は、authSource 接続文字列 オプションに対応します。
注意
Atlas クラスターの場合、Authentication Database は通常
admin
です。
ソリューション
UsernameとPassword を正しく入力したことを確認します。
認証する MongoDB ユーザーが存在することを確認します。
Authentication Databaseと認証メカニズムを確認します。
選択した認証メカニズムが MongoDB データベースでサポートされていることを確認します。
Compass ログの確認
Compass ログは、接続エラーに関する追加情報を提供できます。問題の診断に役立つ、より詳細なエラーメッセージが見つかる場合があります。詳細については、Compass ログの取得を参照してください。