0

我有一个在 linux 机器上运行的 mongo db 实例,我正在尝试从我的 windows 机器连接到它。当我启用身份验证时,我不断收到

数据库“管理员”的凭据无效..

我的用户设置看起来像

显示用户{“_id”:“test.myuser”,“user”:“myuser”,“db”:“admin”,“roles”:[{“role”:“readWrite”,“db”:“admin” },{“角色”:“userAdminAnyDatabase”,“db”:“管理员”}]}

如果我执行“mongo -u myuser -p password --authenticationDatabase admin”,我可以从我的 linux 框中的 shell 登录。我正在尝试使用 MongoVue 和 RoboMongo,但都失败了。我尝试在测试数据库中创建相同的用户。日志说

2015-08-29T11:16:52.797-0400 I ACCESS [conn24] 无法使用机制 MONGODB-CR 对 myuser@test 进行身份验证:用户文档中缺少 AuthenticationFailed MONGODB-CR 凭据

看起来客户端尚未传递凭据。知道如何实现这一目标吗?

4

2 回答 2

1

我不确定上述解决方案是否应该修复它。我希望这将解决您的错误。登录到您的服务器,

# mongo
> use admin
> db.system.users.remove({})    <== removing all users
> db.system.version.remove({}) <== removing current version 
> db.system.version.insert({ "_id" : "authSchema", "currentVersion" : 3 })
> exit

重启你的 MongoDB

服务 mongod 重启

再次创建用户名和密码。

# mongo

> use admin
> db.createUser ( { user: "username", pwd: "password", roles: [ "readWrite", "dbAdmin", "dbOwner" ] } )
于 2015-11-13T10:57:28.353 回答
0

我得到了它与 MongoChef 的合作。因此,对于使用最新版本的 MongoDB 服务器的 MongoVue 和 RoboMongo,这是一个不支持的问题。

于 2015-08-29T23:39:37.337 回答