文档数据库服务

连接报错:认证失败

2025-07-02 03:21:57

问题描述

使用客户端连接文档数据库服务实例时报错 "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" 说明客户端到文档数据库服务实例的网络访问没有问题。一般可能是如下问题:

• 密码错误。

• 用户名和密码不匹配。

• 密码中含有特殊字符。


处理方法

  1. 确认输入的用户名和密码是否正确,然后使用正确的用户名和密码重试。

  2. 如果忘记了密码,可以到文档数据库服务的管控控制台界面上进行密码重置。

  3. 可以使用交互式验证方式来验证是否是特殊字符的问题。交互式验证方式的示例如下,特点是在 Connection URI 中不指定密码信息。

mongo "mongodb://root@<IP1:Port1>,<IP2:Port2>/admin?authSource=admin&replicaSet=<setname>"

执行上述命令之后,会提示进一步输入密码信息。如果交互式验证能够成功,而将密码直接放在 Connection URI 中验证失败,则很有可能是密码中包含有特殊字符。 

特殊字符的处理方法是在 Connection URI 中提携手动转义的密码,将 '%' 替换为 '%25', '@' 替换为 '%40','!' 替换为 ''%21. 也就是说将特殊字符替换为 '%' + 16进制ASCII 码的形式。


aabHoRlyK2KN