[英]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.