sql >> Database teknologi >  >> NoSQL >> MongoDB

mongodb 3.4.3 Tilladelse nægtet widtiger_kv_engine.cpp 267 fejl med ubuntu 16

Jeg har problemer med at starte mongod som en tjeneste:Hvordan er det muligt, at det virker, når jeg gør sudo mongod -f /etc/mongod.conf, men når jeg starter den med sudo-tjenesten mongod start, får jeg en fejl i loggen

sudo kommandoen starter mongod med root tilladelser (alias superbrugeradgang). Hvis du kører mongod som en tjeneste er brugeren og gruppen konfigureret i tjenestedefinitionen (mongodb for begge i dit eksempel).

Der er ingen grund til at køre mongod proces som root bruger, og dette frarådes kraftigt i henhold til den almindelige sikkerhedspraksis i princippet om mindste privilegium.

Hvis du vil teste en konfiguration fra kommandolinjen, kan du bruge sudo at køre med en specificeret bruger i stedet for standardbrugeren (rodbrugeren).

For eksempel:

sudo -u mongodb mongod -f /etc/mongod.conf 

Generelt er det bedst at bruge en tjenestekonfiguration i stedet for at køre mongod manuelt. Med manuel aktivering skal du også huske at inkludere parametre som konfigurationsfilstien (da der ikke er nogen standard konfigurationssti). Uden en konfigurationsfil, mongod bruger også standardindstillinger såsom en dbPath af /data/db .

Påstand:28595:13:Tilladelse nægtet src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 267

Den sandsynlige årsag til dine tilladelsesfejl er at have startet mongod tidligere som root bruger. Nogle mapper og filer kan nu ejes af root-brugeren, så mongodb brugeren kan ikke få adgang til dem. Din specifikke fejl vedrører adgang til filer i databiblioteket (dvs. den konfigurerede storage.dbPath i mongod.conf ).

Forudsat at du ikke har ændret standardstierne i din mongod.conf fil, bør du være i stand til rekursivt at justere tilladelser, så de passer til mongod.service definition forventer.

Først skal du sikre dig, at du har stoppet din mongod hvis den kører i øjeblikket.

Juster derefter rekursivt tilladelser til den forventede bruger og gruppe:

# storage.dbPath
sudo chown -R mongodb:mongodb /var/lib/mongodb

# systemLog.path
sudo chown -R mongodb:mongodb /var/log/mongodb

Nu skulle du være i stand til at starte mongod som en service. Hvis tjenesten ikke starter, bør der være flere detaljer i mongod logfil (forudsat at logfilen kan skrives af mongodb tjenestebruger).



  1. Slaget om NoSQL-databaserne - Sammenligning af MongoDB og Firebase

  2. hvordan man har relationer mange til mange i redis

  3. Leder efter en løsning mellem at indstille mange timere eller bruge en planlagt opgavekø

  4. MongoDB $sortByCount Aggregation Operator