MongoDB 2.6.1命令行身份验证失败

时间:2014-05-18 12:26:56

标签: mongodb authentication database-replication

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

$ 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> 

使用我创建的用户凭据。

但我无法从命令行登录

$ 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

使用相同的凭据。我在文档中找不到任何有用的内容,或者在SO上找不到任何帮助。

2 个答案:

答案 0 :(得分:54)

您的示例中执行的shell内身份验证针对 admin 数据库。上面发布的命令行未指定数据库,因此针对默认数据库 test 进行身份验证。请尝试通过命令行对admin db:

进行身份验证
mongo admin -u 'USERNAME' -p 'PASSWORD'

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

mongo your_host_name:your_port/admin -u 'USERNAME' -p 'PASSWORD'

答案 1 :(得分:0)

由于此问题最初得到解答,因此更新可能不同,但只有在用双引号括起用户名/密码时才能成功进行身份验证。 如,

mongo admin -u "myName" -p "myPassword"