2016-12-01 15 views
0

私は、3つのデータベース(PRIMARY/SECONDARY + Arbiter)を持つmongoDB replicaSetを持っています。 3人とも同じ方法でインストールされました。つまり、デフォルトのパスワードを持つ管理データベースがあります。調停者のmongo管理者パスワードを変更します

今、デフォルトのパスワードを変更したいと思います。プライマリ/セカンダリではうまくいきました。

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 : 
[email protected]/mongo/shell/utils.js:25:13 
[email protected]/mongo/shell/db.js:1319:15 
[email protected]/mongo/shell/db.js:1323:9 
@(shell):1:1 

任意のアイデアをどのように調停管理者パスワードを変更します?

答えて

1

レプリカセットの設定が正しく行われていると、プライマリノードでユーザーを作成/更新した後、ユーザーは残りのクラスタに伝播します。

あなたは、したがって、それはユーザーを格納するために何の管理データベースを持っていない、セカンダリの1にログオンして、任意のデータを格納すべきではないアービタについては

>use admin 
>db.system.users.find(); 

をすることによってこれを確認することができます

rs01:ARBITER> rs.slaveOk() 
rs01:ARBITER> use admin 
switched to db admin 
rs01:ARBITER> show collections 
rs01:ARBITER> 
+0

- 「アプリケーション」(このインストーラ)は他のものと同じようにこのmahcineをインストールしているので、管理データベースが含まれています:admin-> show collections-> system.users system.version – Boaz

+0

私は考えていますアービターの管理コレクションを削除してpropogate ...試して更新しようとします... – Boaz

+0

最終的にコレクションを削除できませんでした - そして、アービターのDBを削除しました(これは最も正しいことです) – Boaz

関連する問題