如何解决连接MongoDB时出现的认证失败问题?
解决mongosh连接MongoDB时的认证失败问题
排查及解决步骤
- 确认认证数据库匹配:你指定的
<DATABASE_NAME>必须是该用户创建时关联的认证库(多数场景下用户会在admin库创建,若你的用户属于其他库则需对应切换)。不确定的话先尝试用admin库连接:mongosh --port <PORT> admin -u <USERNAME> -p <PASSWORD> - 核对用户名密码准确性:注意MongoDB的用户名、密码区分大小写,检查是否输入了多余空格;若密码包含特殊字符,用双引号包裹避免解析错误:
mongosh --port <PORT> <DATABASE_NAME> -u <USERNAME> -p "<PASSWORD>" - 验证服务状态与端口:确认
<PORT>是MongoDB实际监听的端口(默认27017),且MongoDB服务处于运行状态。可通过系统命令(如netstat、lsof)检查端口占用,或查看MongoDB日志确认服务启动正常。 - 检查用户权限配置:若能通过本地无认证方式登录MongoDB(比如localhost默认免权),执行以下命令查看用户的所属库及权限:
确认该用户拥有目标数据库的连接权限,且认证库配置无误。use <DATABASE_NAME> db.getUser("<USERNAME>") - 匹配认证机制:新版本MongoDB默认使用SCRAM-SHA-256认证,确保mongosh客户端支持该机制。可查看MongoDB配置文件中
security.authorization是否开启,以及security.authenticationMechanisms的设置是否与客户端兼容。
报错信息:
MongoServerError: Authentication failed.
内容的提问来源于stack exchange,提问作者Tayan
相关产品推荐
相关产品推荐

