DMS や mongo シェルを使用して ApsaraDB for MongoDB にログインできます。 このトピックでは、mongo シェルを使用して ApsaraDB for MongoDB にログインする際に発生する一般的な問題と解決方法を説明します。

connection attempt failed というメッセージが表示される

現象:

#mongo --host ali12345678.mongodb.rds.aliyuncs.com:3717 --authenticationDatabase admin -u root -p xxx
MongoDB shell version: 3.2.3
DB Prefix:
connecting to: 10.1.2.8:3717/admin
2016-05-31T15:25:58.940+0800 W NETWORK  Failed to connect to 10. *. *.8:3717 after 5000 milliseconds, giving up.
2016-05-31T15:25:58.943+0800 E QUERY    Error: couldn't connect to server 10. *. *.8:3717 (10.1.2.8), connection attempt failed
    at connect (src/mongo/shell/mongo.js:181:14)
    at (connect):1:6 at src/mongo/shell/mongo.js:181
exception: connect failed
考えられる原因 解決方法
mongo シェルコマンドを実行する ECS インスタンスと ApsaraDB for MongoDB インスタンスが同じ VPC にないか、ネットワークタイプが異なります。

追加のトラブルシューティング方法:telnet dds-ali123456789.mongodb.rds.aliyuncs.com 3717 などの Telnet コマンドを実行して、ApsaraDB for MongoDB インスタンスがアクセス可能かどうか確認します。

ポートのテストこの図は、URL が解決され、ポート 3717 が適切に動作していることを示しています。

Authentication failed というメッセージが表示される

現象:

#mongo --host ali12345678.mongodb.rds.aliyuncs.com:3717  --authenticationDatabase admin -u root -p xxx
MongoDB shell version: 3.2.3
connecting to: 10.1.2.8:3717/test
2016-05-31T15:50:18.623+0800 E QUERY    Error: 18 Authentication failed.
    at DB._authOrThrow (src/mongo/shell/db.js:1271:32)
    at (auth):6:8
    at (auth):7:2 at src/mongo/shell/db.js:1271
exception: login failed
考えられる原因 解決方法
データベースへのログインに使用したユーザー名が正しくありません。 正しいユーザー名でデータベースにログインします。
データベースへのログインに使用したパスワードが正しくありません。 正しいユーザーパスワードでデータベースにログインします。 パスワードを忘れた場合は、コンソールで root ユーザーのパスワードをリセットします。 詳細については、「パスワードのリセット」をご参照ください。
ログインユーザーが認証データベースと一致しません。 ユーザーと認証データベースは一致しなければなりません。 たとえば、root ユーザーは管理データベースのユーザーなので、root ユーザーでログインする場合は、認証データベースを管理者として割り当てる必要があります。
クライアントのバージョンが古くなっています。 mongo シェルのバージョンは 3.0 以降でなければなりません。 mongo シェルのインストール方法の詳細については、「MongoDB のインストール」をご参照ください。 他のプログラミング言語のクライアントのバージョン要件については、『ドライバー互換性』をご参照ください。

isMaster コマンドを実行するとネットワークエラーが発生する

現象:

#mongo --host ali12345678.mongodb.rds.aliyuncs.com:3717 --authenticationDatabase test -u root -p xxxxxx
MongoDB shell version v3.4.10
connecting to: mongodb:ali1234567878.mongodb.rds.aliyuncs.com:3717/
2018-12-18T14:26:11.946+0800 E QUERY    [thread1] Error: network error while attempting to run command 'isMaster' on host 'ft12345678.mongodb.rds.aliyuncs.com:3717'  :
connect@src/mongo/shell/mongo.js:237:13
@(connect):1:6
exception: connect failed
考えられる原因 解決方法
ApsaraDB for MongoDB インスタンスのホワイトリストに ECS インスタンスの IP アドレスがありません。 ApsaraDB for MongoDB インスタンスのホワイトリストに ECS インスタンスの IP アドレスを追加します。 詳細については、「ホワイトリストの設定」をご参照ください。

Timeout while receiving message というメッセージが表示される

org.springframework.data.mongodb.UncategorizedMongoDbException: Timeout while receiving message; nested exception is com.mongodb.MongoSocketReadTimeoutException: Timeout while receiving message
考えられる原因 解決方法
異常なスロークエリによりインスタンスリソースが占有されると、CPU 使用率が急上昇したり、ピークに達したりします。 スロークエリを確認してください。 インデックスを作成して最適化することを推奨します。 詳細については、「データベースに対するスローリクエストの分析」をご参照ください。
タイムアウト設定など、アプリケーション接続プールの設定が正しくありません。 詳細については、「端末の接続数の制限」をご参照ください。

一般的な接続シナリオ