在仲裁服务器上更改mongo管理员密码

时间:2016-12-01 12:15:42

标签: mongodb replicaset

我有一个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

如何更改仲裁管理员密码?

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>