小编Sen*_*nju的帖子

MongoDB:了解createUser和db admin

我的MongoDB托管在compose.io上,名为ScroungeBA.我尝试创建一个具有一些内置角色的用户,这些角色由纪录片仅在admin数据库中工作:

MongoDB仅在管理数据库上提供所有其他内置角色

所以我的问题是:那个admin db是关于什么的?它是始终存在的标准数据库吗?

此外我遇到麻烦(使用MongoDB shell版本:3.0.5):

$ use admin
switched to db admin
$ db.auth("user", "secret")
Error: 18 Authentication failed.
Run Code Online (Sandbox Code Playgroud)

我想我的用户确实存在于ScroungeBA数据库中但不存在于admin数据库中?我如何在admin db中创建用户

db.createUser({user:"hello", pwd:"world", roles:[{role: "userAdmin", db: "admin"}]})
Run Code Online (Sandbox Code Playgroud)

导致错误:

Error: couldn't add user: not authorized on admin to execute command { createUser: "hello", pwd: "xxx", roles: [ { role: "userAdmin", db: "admin" } ], digestPassword: false, writeConcern: { w: "majority", wtimeout: 30000.0 } }
at Error (<anonymous>)
at DB.createUser (src/mongo/shell/db.js:1101:11)
at (shell):1:4 at src/mongo/shell/db.js:1101
Run Code Online (Sandbox Code Playgroud)

database authentication shell admin mongodb

5
推荐指数
1
解决办法
2万
查看次数

MongoDB:replSet无法从自身或任何种子“服务器未使用--replSet运行”的情况下获取local.system.replset配置

我尝试在Ubuntu 14.04 x64上设置副本集。我尝试时遇到的第一个错误

$ sudo mongod --port 27017 --replSet rs0:

replSet can't get local.system.replset config from self or any seed (EMPTYCONFIG)
Run Code Online (Sandbox Code Playgroud)

我读到可以> rs.initiate()解决该问题,所以我愿意

$ sudo service mongod start
$ mongo
rs.initiate()
Run Code Online (Sandbox Code Playgroud)

抛出:

{ "ok" : 0, "errmsg" : "server is not running with --replSet" }
Run Code Online (Sandbox Code Playgroud)

因此,如果我不能以--replSet如何rs.initiate()解决第一个错误需要解决的错误来开始mongod ?就像一个恶性循环!

ubuntu mongodb replicaset

5
推荐指数
1
解决办法
8008
查看次数

标签 统计

mongodb ×2

admin ×1

authentication ×1

database ×1

replicaset ×1

shell ×1

ubuntu ×1