我有一个应用程序连接到一个名为讨论的MongoDB数据库。 我创build了一个用户
Mongo shell:
> 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。 根据文档,它具有读取,写入等权限。
configuration文件启用了属性“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的问题,他们都与周围的用户名和密码使用的引号有关…但更改单引号双引号没有产生更好的结果。
也许我错了,但正确的forms是这样的:
mongo –port 27017 -u manager -p 12345678 –authenticationDatabase admin
你可以在mongo文档中阅读这个:
http://docs.mongodb.org/manual/tutorial/add-user-to-database/
通过删除任何符号解决了该问题。 看起来,尽pipe报价[单或双]将导致传入密码无效。