【DDS】Linux实例使用Mongo Shell登录MongoDB数据库提示“Authentication failed”错误

举报
云技术搬运工 发表于 2021/08/20 10:30:32 2021/08/20
【摘要】 问题现象Linux实例使用Mongo Shell登录MongoDB数据库,提示以下错误:MongoDB shell version: 3.2.3connecting to: 10.X.X.8:3717/test2016-05-31T15:50:18.623+0800 E QUERY Error: 18 Authentication failed. at DB._authOrThrow (sr...

问题现象

Linux实例使用Mongo Shell登录MongoDB数据库,提示以下错误:

MongoDB shell version: 3.2.3

connecting to: 10.X.X.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


问题分析

鉴权失败可能是以下原因所导致:

1、登录数据库的用户名或密码错误;

2、连接地址不正确、网络不畅通、安全组未放通等导致数据库网络无法连接;

3MongoDB的帐号和鉴权数据库不匹配;

4Linux实例内Mongo Shell客户端版本过低。


解决方案

针对以上原因,解决方案为:

1、检查用户名和密码,确保使用正确的数据库用户名和密码登录。如果忘记密码,可以在MongoDB管理控制台中重置root用户的数据库密码。

2、请检查连接地址的正确性、网络畅通情况、安全组是否放通后再进行重试,文档数据库服务安全组修改参考链接:https://support.huaweicloud.com/usermanual-dds/dds_03_change_security_group.html

3MongoDB的帐号和数据库关联,鉴权时需要指定帐号所属的数据库信息。例如,test帐号属于admin数据库,使用test连接时,必须指定鉴权数据库为admin,可执行以下任意命令登录:

mongo --host [$Mongodb_Host] --port [$Port] -u test -p test --[$Database] admin

mongo --host [$Mongodb_Host] --port [$Port]
use admin
db.auth("test", "test")

说明:

[$Mongodb_Host]MongoDB数据库的服务器地址。

[$Port]:数据库服务的端口号,默认为8635

[$Database]:鉴权数据库名,即数据库账号所属的数据库。

4Mongo Shell版本必须3.0及以上的版本,安装步骤请参见官方文档:https://docs.mongodb.com/v3.4/installation/?spm=a2c4g.11186623.2.8.656e5d91AevVV8


建议

1、客户端连接时,如果不使用SSL方式连接,建议关闭SSL

2、客户端连接时,建议连接类型为直接连接(Direct Connection)。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。