我有一个mongoDB replicaSet,它有3个DB - PRIMARY / SECONDARY + Arbiter。 所有3个都以相同的方式安装 - 这意味着它们具有带有默认密码的管理数据库。
现在 - 我想更改默认密码。在小学/中学,它运作良好。
mongo admin -u admin -p <password> --authenticationDatabase=admin
db.changeUserPassword("admin",<new password>)
然而 - 在仲裁者中它不起作用(即使在PRIMARY中添加rs.slaveOK()
之后)
我得到了:
2016-12-01T00:18:51.408-0800 E QUERY [thread1] Error: Updating user failed: not master :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.updateUser@src/mongo/shell/db.js:1319:15
DB.prototype.changeUserPassword@src/mongo/shell/db.js:1323:9
@(shell):1:1
如何更改仲裁管理员密码?
答案 0 :(得分:2)
如果您正确设置了replicaset,则在主节点上创建/更新用户后,用户将传播到群集的其余部分。
您可以登录其中一个辅助设备并执行
来检查>use admin
>db.system.users.find();
至于仲裁者,它不应该存储任何数据,因此它没有管理数据库来存储用户:
rs01:ARBITER> rs.slaveOk()
rs01:ARBITER> use admin
switched to db admin
rs01:ARBITER> show collections
rs01:ARBITER>