mongodb - 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 用户?
解决方案
如果您的节点已经在副本集中,则它只能是“非主节点”。您只能启动一次副本集,因此您不应该再次尝试启动它,它已经启动了。
推荐阅读
- angular - 如何跟踪响应式表单中未保存的更改?如何防止用户在保存之前单击同一页面上的按钮?
- django - 如何在 django REST 中搜索包含 utf8 字符的名称字段?
- java - 为什么不能在 catalina.properties 中运行配置文件?
- oracle - 在 PLSQL 中检查瑞士工资单的数字
- javascript - 稍后等待时未处理的承诺拒绝的解决方法
- c - 为什么我不能在 C 中使用 ^ 运算符?
- firebase - Firestore 规则只允许文档所有者更新它,其他人更新某些字段
- c++ - How to connect GTK+ signals (not gtkmm) to non-static class methods using libsigc++?
- r - singular error when compute a specific variable mlogit (nested)
- python - How can i reach all li in ul