2015-07-13 16 views
5

Używałem MongoDB w wersji 2.6.6 w Google Compute Engine i stosowałem metodę click to wdrożyć.Nie można utworzyć użytkownika

rs0:SECONDARY> db.createUser({user:"admin", pwd:"secret_password", roles:[{role:"root", db:"admin"}]}) 
2015-07-13T15:02:28.434+0000 Error: couldn't add user: not master at src/mongo/shell/db.js:1004 

rs0:SECONDARY> use admin 
switched to db admin 
rs0:SECONDARY> db.createUser({user:"admin", pwd:"secret_password", roles:["root"]}) 
2015-07-13T15:13:28.591+0000 Error: couldn't add user: not master at src/mongo/shell/db.js:1004 

Odpowiedz

2

MongoDB będą rozmieszczone w klastrze Compute przypadkach silnika (znany także jako zespół replik MongoDB). Każde wystąpienie będzie używać dysku rozruchowego i osobnego dysku dla plików bazy danych.

Węzły główne i główne to węzły, które mogą akceptować zapisy. Replikacja MongoDB to "single-master:" tylko jeden węzeł może akceptować operacje zapisu na raz.

Węzły wtórne i podrzędne są węzłami tylko do odczytu, które replikują się z poziomu podstawowego.

Komunikat o błędzie wygląda na to, że próbujesz dodać użytkownika do strony drugorzędnej. Spróbuj dodać użytkownika w podstawowym.

+1

Używam tylko jednej repliki, która jest podstawowa i otrzymuje taki sam wynik, jak Lolxdnub – froy001

8

miałem podobny problem z Mongo 3.2:

Error: couldn't add user: not master :

Podczas próby utworzenia nowego użytkownika z roli głównego.

Używałem tylko lokalnej kopii mangi.

W moim pliku mongod.conf miałem następujące komentarzem:

replication: 
    replSetName: <node name> 

Komentując że się i ponownym uruchomieniu problem został rozwiązany. Sądzę, że Mongo myślał, że to część zestawu replikacyjnego, i był zdezorientowany co do tego, kim jest Mistrz.

Edit:

Ja również okazało się, że jeśli próbuje skonfigurować zestaw replikacji, a otrzymasz powyższy błąd, a następnie uruchomić:

rs.initiate()

ten uruchomi zestaw replikacji i ustawi bieżący węzeł jako PODSTAWOWY.

Exit, a następnie zalogować się ponownie i powinieneś zobaczyć:

primary>

teraz tworzyć użytkowników zgodnie z potrzebami.

+0

Może to działać, ale jest bezpośrednio sprzeczne z przewodnikiem tutaj: https://docs.mongodb.com/manual/tutorial/enforce- keyfile-access-control-in-existing-replica-set/Myślę, że to błąd. Otrzymałem to również w wersji 3.2.9. –