全部產品
Search
文件中心

ApsaraDB for MongoDB:排查Mongo Shell登入問題

更新時間:Jun 19, 2024

您可以通過DMS或Mongo Shell登入MongoDB資料庫,本文介紹使用Mongo Shell登入資料庫時出現的典型問題及解決方案。

提示connection attempt failed錯誤

現象:

#mongo --host ali12345678.mongodb.rds.aliyuncs.com:3717 --authenticationDatabase admin -u test -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 Shell命令的ECS與MongoDB執行個體不在同一個專用網路或網路類型不一致。

輔助排查方法:可以通過telnet來確認到達MongoDB執行個體的網路是否通暢,例如telnet dds-ali123456789.mongodb.rds.aliyuncs.com 3717

測試連接埠圖中樣本表示可以正常解析該網域名稱地址,且3717連接埠可正常通訊。

提示Authentication failed錯誤

現象:

#mongo --host ali12345678.mongodb.rds.aliyuncs.com:3717  --authenticationDatabase admin -u test -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使用者是admin資料庫下的使用者,使用root串連時,必須指定鑒權資料庫為admin。
用戶端版本過低Mongo Shell版本必須3.0及以上的版本,安裝步驟請參見官方文檔 Install MongoDB。其他語言用戶端的版本要求請參見Driver相容性文檔

提示運行isMaster命令出現網路錯誤

現象:

#mongo --host ali12345678.mongodb.rds.aliyuncs.com:3717 --authenticationDatabase test -u test -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
可能的原因解決方案
ECS的IP地址沒有加入到MongoDB執行個體白名單中將ECS的IP地址加入MongoDB執行個體的白名單中,詳情請參見設定白名單

提示Timeout while receiving message資訊

org.springframework.data.mongodb.UncategorizedMongoDbException: Timeout while receiving message; nested exception is com.mongodb.MongoSocketReadTimeoutException: Timeout while receiving message
可能的原因解決方案
異常的慢查詢佔用執行個體資源,導致CPU使用率激增甚至到達峰值。檢查是否有慢查詢,建議進行添加索引最佳化。具體方法請參見分析資料庫慢請求
應用端串連池的配置錯誤引起,如逾時時間的設定等。詳情請參見如何查詢及限制串連數

常見的串連情境