2014-04-14 14 views
5

sto ottenendo un errore nel tentativo di avviare mongo con l'autorizzazione abilitato tramite il parametro di configurazione security.authorization (vedi http://docs.mongodb.org/manual/reference/configuration-options/#security.authorization)MongoDB iniziare errore security.authorization abilitato

Sulla corsa mongod ottengo

Error parsing INI config file: unknown option security.authorization 
try 'mongod --help' for more information 

Qualche idea? Grazie

dati sostenente:

  • Mongo versione 2.6.0 (installato tramite homebrew)
  • OSX Mavericks 10.9.2

comando di avviamento:

mongod -f /usr/local/etc/mongod.conf 

mongod File .conf (funziona bene se commento out security.authorization):

# Store data in /usr/local/var/mongodb instead of the default /data/db 
dbpath = /usr/local/var/mongodb 

# Append logs to /usr/local/var/log/mongodb/mongo.log 
logpath = /usr/local/var/log/mongodb/mongo.log 
logappend = true 

# Only accept local connections 
bind_ip = 127.0.0.1 

# auth 
security.authorization = enabled 
#security.authenticationMechanisms = MONGODB-CR #error occurs with or without this 

No voce viene fatta nel file mongo.log quando ciò si verifica

risposta

4

Nota: avrei scritto questo come un commento, ma non ho ancora i punti.

Basta chiedersi se ciò che si sta cercando di ottenere è l'autenticazione ? Se questo è il caso, tutto ciò che serve a mettere in mongodb.conf è:

# auth 
auth = true # true or false. Whether or not authentication is required. 

- AGGIORNAMENTO:

Alcuni altri passi che sono importanti:

configurare la posizione db: Situato in mongodb.conf come (si dispone già di questo, ma dovrebbe controllare la directory esistono e permessi):

# Store data in /usr/local/var/mongodb instead of the default /data/db 
dbpath = /usr/local/var/mongodb 

# Append logs to /usr/local/var/log/mongodb/mongo.log 
logpath = /usr/local/var/log/mongodb/mongo.log 
logappend = true 

Dont fo rget per assicurarsi che la suddetta directory /usr/local/var/mongodb e la directory /usr/local/var/log/mongodb/ esistano. Il programma di installazione che hai usato potrebbe non averli creati.

Creare un utente del sistema operativo per MongoDB: (se non è già stato creato - come su Linux, non è sicuro per OSX) - come root:

adduser --system --no-create-home --disabled-login --disabled-password --group mongodb 

aggiungere le autorizzazioni a cartelle, se essi non sono già impostati:

chown mongodb:mongodb -R /usr/local/var/mongodb 

Per configurare database delle autorizzazioni utente/privilegi:

Vedere il riferimento del comando qui: http://docs.mongodb.org/manual/reference/command/#database-commands

+0

Sto solo seguendo i documenti :): la documentazione di Mongodb per abilitare _authentication_ ti dice di impostare l'impostazione _authorization_ (http://docs.mongodb.org/manual/tutorial/enable-authentication/). Non menziona alcuna impostazione di configurazione chiamata ** auth ** che posso trovare. Darò un andare e vedere se funziona. –

+2

Devo dire che personalmente trovo i documenti confusi, ho aggiornato la mia risposta con un po 'più di informazioni che spero siano utili per voi. – jdt

1

Formato del file di configurazione del server MongoDB modificato dalla versione 2.6 e il formato ancora vecchio funziona.

http://docs.mongodb.org/manual/reference/configuration-options/

Modificato nella versione 2.6: MongoDB introduce un formato di file di configurazione YAML-based. Il formato del file di configurazione 2.4 rimane per compatibilità con le versioni precedenti.

L'errore è dovuto al motivo per il vostro file di configurazione utilizza vecchio formato e aggiungendo il parametro security.authorization = abilitato utilizzando nuova format.You può risolvere il problema utilizzando impostazioni di formato vecchi citati al http://docs.mongodb.org/v2.4/reference/configuration-options

auth = true

o convertendo file di configurazione di nuovo formato YAML.

Problemi correlati