我有一个名为 Discussions 的应用程序连接到 MongoDB 数据库。我创建了一个用户
蒙戈壳:
> use discussions
switched to db discussions
> db.auth("discussions","XXXXXXXXX")
1
> show users
{
"_id" : "discussions.discussions",
"user" : "discussions",
"db" : "discussions",
"roles" : [
{
"role" : "dbOwner",
"db" : "discussions"
}
]
}
因此,这是为了确认我确实在数据库中有一个帐户,并且它是 dbOwner。根据文档,它具有 READ、WRITE 等权限。
配置文件已启用属性“auth = true”,自更改后服务已多次被退回。
然而,问题是当我尝试从 shell 外部连接到数据库时,总是出现错误:
mongo discussions -u 'discussions' -p 'XXXXXXXXX'
MongoDB shell version: 2.6.3
connecting to: discussion
2014-08-05T01:00:39.026+0400 Error: 18 { ok: 0.0, errmsg: "auth failed", code: 18 } at src/mongo/shell/db.js:1210
exception: login failed
我在 Stackoverflow 上看到过有关此问题的问题,它们都与用户名和密码周围的引号有关……但将单引号更改为双引号并没有产生更好的结果。
答案1
也许我错了,但正确的形式是这样的:
mongo --port 27017 -u manager -p 12345678 --authenticationDatabase admin
您可以在 mongo 文档中阅读有关此内容:
http://docs.mongodb.org/manual/tutorial/add-user-to-database/
答案2
删除所有符号即可解决该问题。看来,无论使用单引号还是双引号,都会导致输入的密码无效。