如果admin db丢弃,如何访问数据库?

时间:2017-02-16 13:20:10

标签: mongodb

在使用mongodb时,我不小心丢弃了'admin'db。现在我无法访问任何数据库。

replicaSet1:PRIMARY> db.auth("root","root")
1
replicaSet1:PRIMARY> db.dropDatabase()
{ "dropped" : "admin", "ok" : 1 }
replicaSet1:PRIMARY> db.auth("root","root")
Error: Authentication failed.
0

1 个答案:

答案 0 :(得分:1)

按照以下步骤使用admin用户恢复管理员数据库和访问其他数据库:

(1)使用密钥文件将本地数据库与系统用户连接。

  

mongo -u __system -p" $(tr -d' \ 011- \ 015 \ 040'< path-to-keyfile)"   --authenticationDatabase local

注意:path-to-keyfile =这是mongo的密钥文件路径。

(2)切换到管理数据库。

  

使用管理员

(3)使用' dbOwner,readWrite和readAnyDatabase创建管理员用户'作用。

  

db.createUser({user:" admin",pwd:" cal @ cas",role:[role:   " dbOwner",db:" admin" },{role:" readWrite",db:" admin" },{角色:   " readAnyDatabase",db:" admin" }]});

(4)使用以下命令查看数据库列表。

  

显示dbs;