全部产品

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

更新时间:2020-08-12 14:59:46

问题描述

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

问题原因

可能是以下原因所导致:

  • 登录数据库的用户名错误。
  • 登录数据库的密码错误。
  • MongoDB的帐号和鉴权数据库不匹配。
  • Linux实例内Mongo Shell客户端版本过低。

解决方案

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
  • 使用正确的数据库用户名登录。
  • 使用正确的数据库密码登录,如果忘记密码,您可以MongoDB管理控制台中重置root用户的数据库密码,详细请参见重置密码
  • MongoDB的帐号和数据库关联,鉴权时需要指定帐号所属的数据库信息,例如,test帐号属于admin数据库,则可执行以下任意命令登录:
    • mongo --host [$Mongodb_Host] --port [$Port] -u test -p test --[$Database] admin
      说明:
      • [$Mongodb_Host]:MongoDB数据库的服务器地址。
      • [$Port]:数据库服务的端口号,默认为27017。
      • [$Database]:鉴权数据库名,即数据库账号所属的数据库。
    • mongo --host [$Mongodb_Host] --port [$Port]
      use admin
      db.auth("test", "test")
  • Mongo Shell版本必须3.0及以上的版本,安装步骤请参见官方文档Install MongoDB。其他语言客户端的版本要求请参见Driver兼容性文档

相关文档

适用于

  • 云数据库MongoDB

如果您的问题仍未解决,您可以在阿里云社区免费咨询,或提交工单联系阿里云技术支持。