簡體   English   中英

在Mongo副本集上切換了主數據庫。 現在我無法管理

[英]switched primary on Mongo replica set. now I can't admin it

我在一個新創建的副本集中有三台服務器。 假設它們是sv1,sv2,sv3。 sv1是主要的。

在sv1中,我創建了一個root用戶並對其進行身份驗證。 然后我執行了rs.stepDown(),因為sv1實際上是副本集中最遠的機器,並且我希望主節點距離網絡的其余部分更近。

然后,我進入sv2,這是新的主要數據庫,並執行了rs.status()。 它抱怨我沒有管理員權限。

not authorized on admin to execute command { replSetGetStatus: 1.0 }

我試圖在該服務器上創建一個root用戶(使用admin; db.createUser(...)),但是由於我顯然沒有權限而無法這樣做。

Error: couldn't add user: not authorized on admin to execute command

當我嘗試在sv1機器上創建的用戶進行身份驗證時,它當然會失敗:

sv2:PRIMARY> db.auth('root','[PASS]');
Error: 18 Authentication failed.

知道我應該怎么做才能重新獲得控制權嗎? 我現在不能將sv1設為主服務器,因為只有主服務器才能做到這一點(據我所知),但是我無法在sv2上進行身份驗證...

從另一個節點創建用戶之后,您似乎必須退出其他服務器並再次登錄到這些服務器,這次使用控制台中的用戶身份驗證詳細信息。

例:

sv:PRIMARY> use admin
switched to db admin
sv:PRIMARY> db.auth('root','[PASS]');
Error: 18 Authentication failed.
0
sv:PRIMARY> exit
bye

然后我立即使用上面失敗的完全相同的密碼登錄...

[root@sv2 ~]# mongo admin -uroot -p
MongoDB shell version: 3.0.12
Enter password: 
connecting to: admin
sv:PRIMARY>

此后,諸如rs.status()等的命令將正常運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM