我的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) 我尝试在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 ?就像一个恶性循环!