MongoDB 2.6.1命令行身份验证失败

Mic*_*zov 22 authentication mongodb database-replication

我设置了具有身份验证的副本集.我用过这个教程.我设置了密钥文件,管理员用户和其他用户.一切正常 - 匿名访问被禁用,我可以登录

$ mongo
MongoDB shell version: 2.6.1
connecting to: test
Error while trying to show server startup warnings: not authorized on admin to execute     command { getLog: "startupWarnings" }
rs0:PRIMARY> use admin
switched to db admin
rs0:PRIMARY> db.auth("USERNAME","PASSWORD")
1
rs0:PRIMARY> 
Run Code Online (Sandbox Code Playgroud)

使用我创建的用户凭据.

但我无法从命令行登录

$ mongo -u 'USERNAME' -p 'PASSWORD'
MongoDB shell version: 2.6.1
connecting to: test
2014-05-18T14:23:47.324+0200 Error: 18 { ok: 0.0, errmsg: "auth failed", code: 18 } at   src/mongo/shell/db.js:1210
exception: login failed
Run Code Online (Sandbox Code Playgroud)

使用相同的凭据.我没有在文档中找到任何有用的信息,或者在SO上找到.

Jam*_*lin 55

在您的示例中执行的shell内身份验证是针对admin数据库的.上面发布的命令行没有指定数据库,因此针对测试的默认数据库进行身份验证.尝试使用命令行对admin db进行身份验证:

mongo admin -u 'USERNAME' -p 'PASSWORD'
Run Code Online (Sandbox Code Playgroud)

如果服务器不在本地主机上,那么您可以使用:

mongo your_host_name:your_port/admin -u 'USERNAME' -p 'PASSWORD'
Run Code Online (Sandbox Code Playgroud)

  • **在Mongo文档中没有正确指定任何**. (31认同)
  • 这个问题和答案值得许多赞成,因为它没有在Mongo文档中正确指定. (2认同)