2016-08-02 126 views
5

我设置一个本地解析服务器,它工作完全正常除非我能够在MongoDB的身份验证和更改连接字符串mongodb://username:[email protected]:27017/dbname,解析控制台抛出以下错误:解析,服务器mongoerror验证失败

unable to ensure uniqueness for usernames mongoerror authentication failed

客户端即RoboMongo也能正常工作,并具有身份验证功能。我甚至尝试将userAdminAnyDatabasedbAdminAnyDatabase角色分配给它的用户,以确保它不是权限问题。

更新: 我正在使用MongoDB 3.2,所以我试图降级到MongoDB 3.0.12,仍然是同样的问题。

更新2: 我甚至尝试过root作用,它具有最高特权,即超级用户,但仍然没有运气。

+0

你成功地将数据库从您的命令行接口连接? –

+0

是的,无论是从命令行还是Robomongo –

+0

而你把正确的名称和密码?因为它看起来没有找到用户 –

回答

4

您是否为特定数据库创建了用户?如果您尝试使用mongo管理员帐户进行连接,您可以体验到这一点。

创建这样一个用户:

use dbName 
db.createUser({ user: "userName", pwd: "password", roles: [ "readWrite", "dbAdmin" ] }) 

,并用它来连接到数据库 - 那么它应该工作

+0

创建一个新用户为我解决了它 - 但是我在mlab网站的数据库用户选项卡上创建了它。 –

+0

你能将我的建议标记为答案吗?如果它帮助你当然:) – Simon