首页 > 解决方案 > MongoDB - 管理员无法成为 root。“不是主人”

问题描述

我在 Mongo 4.4 实例(Ubuntu)上创建了一个管理员用户

db.createUser(
  {
    user: "admin",
    pwd: "password",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
  }
)

然后,我尝试了rs.initiate()它,它告诉我我不是“主人”。我读了这个SO 线程,人们建议我这样做db.grantRolesToUser('admin', [{ role: 'root', db: 'admin' }]),但它不起作用!

它给了我以下错误:

uncaught exception: Error: not master :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.grantRolesToUser@src/mongo/shell/db.js:1613:15
@(shell):1:1

我是否必须卸载 MongoDB,重新安装,然后创建 root 用户,然后创建 admin 用户?

标签: mongodb

解决方案


如果您的节点已经在副本集中,则它只能是“非主节点”。您只能启动一次副本集,因此您不应该再次尝试启动它,它已经启动了。


推荐阅读