連接報錯:認證失敗
更新時間 2023-08-29 15:15:30
最近更新時間: 2023-08-29 15:15:30
分享文章
本頁介紹了 Authentication failed 連接報錯的處理方法。
問題描述
使用客戶端連接文檔數據庫服務實例時報錯 "Authentication failed", 使用的連接命令如下:
mongo "mongodb://root:<密碼>@<IP1:Port1>,<IP2:Port2>/admin?authSource=admin&replicaSet=<setname>"
報錯信息如下:
2023-07-19T11:23:54.055+0800 E QUERY [js] Error: Authentication failed. :
DB.prototype._authOrThrow@src/mongo/shell/db.js:1685:20
@(auth):6:1
@(auth):1:2
exception: login failed
原因分析
報錯 "Authentication failed" 說明客戶端到文檔數據庫服務實例的網絡訪問沒有問題。一般可能是如下問題:
- 密碼錯誤。
- 用戶名和密碼不匹配。
- 密碼中含有特殊字符。
處理方法
- 確認輸入的用戶名和密碼是否正確,然后使用正確的用戶名和密碼重試。
- 如果忘記了密碼,可以到文檔數據庫服務的管控控制臺界面上進行密碼重置。
- 可以使用交互式驗證方式來驗證是否是特殊字符的問題。交互式驗證方式的示例如下,特點是在 Connection URI 中不指定密碼信息。
mongo "mongodb://root@<IP1:Port1>,<IP2:Port2>/admin?authSource=admin&replicaSet=<setname>"
執行上述命令之后,會提示進一步輸入密碼信息。如果交互式驗證能夠成功,而將密碼直接放在 Connection URI 中驗證失敗,則很有可能是密碼中包含有特殊字符。
特殊字符的處理方法是在 Connection URI 中提攜手動轉義的密碼,將 '%' 替換為 '%25', '@' 替換為 '%40','!' 替換為 ''%21. 也就是說將特殊字符替換為 '%' + 16進制ASCII 碼的形式。