2015-07-13 12 views
5

Stavo usando MongoDB versione 2.6.6 su Google Compute Engine e ho utilizzato il metodo click per distribuire.Impossibile creare l'utente

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 

risposta

2

MongoDB sarà distribuito in un cluster di istanze del motore Calcola (anche conosciuto come un set di repliche MongoDB). Ogni istanza utilizzerà un disco di avvio e un disco separato per i file di database.

I nodi primari e principali sono i nodi che possono accettare scritture. La replica di MongoDB è "single-master:" solo un nodo può accettare operazioni di scrittura alla volta.

I nodi secondari e slave sono nodi di sola lettura che si replicano dal primario.

Il messaggio di errore sembra che si stia tentando di aggiungere l'utente sul secondario. Prova ad aggiungere l'utente nel primario.

+1

Sto usando solo una replica che è primaria e ottiene lo stesso risultato di Lolxdnub – froy001

8

Ho avuto un problema simile con mongo 3.2:

Error: couldn't add user: not master :

Quando si cerca di creare un nuovo utente, con il ruolo di root.

Stavo usando solo una copia locale di mongo.

Nel mio file mongod.conf ho avuto il seguente commentate:

replication: 
    replSetName: <node name> 

Commentando che fuori e il riavvio risolto il problema. Immagino che Mongo pensasse che facesse parte di un set di repliche, ed era confuso su chi fosse il Maestro.

Edit:

Ho anche scoperto che se si sta cercando di impostare un set di replica, e si ottiene l'errore precedente, quindi eseguire:

rs.initiate()

Questo avvierà un set di replica e imposterà il nodo corrente come PRIMARY.

Exit, e quindi accedere di nuovo e si dovrebbe vedere:

PRIMARIO>

Creare ora gli utenti in base alle esigenze.

+0

Questo potrebbe funzionare, ma è direttamente contrario alla guida qui: https://docs.mongodb.com/manual/tutorial/enforce- keyfile-access-control-in-existing-replica-set/Sto pensando che sia un bug. Ha anche ottenuto questo con v3.2.9. –

Problemi correlati