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

MongoDB på Ubuntu starter ikke som en tjeneste, intet i loggen

OK, det hele kommer ned til tilladelser, men lad os tage det trin for trin. Når du kører sudo mongod den indlæser slet ikke en config-fil, den starter bogstaveligt talt med de kompilerede i standarder - port 27017, databasesti til /data/db osv. - det er derfor du fik fejlen om ikke at kunne finde den mappe. "Ubuntu standard" bruges kun, når du peger på konfigurationsfilen (hvis du begynder at bruge servicekommandoen, gøres dette for dig bag kulisserne).

Dernæst kørte du det sådan her:

sudo mongod -f /etc/mongodb.conf

Hvis der ikke var problemer før, så vil der være nu - du har kørt processen, med din normale config (peger på din sædvanlige dbpath og log) som root-bruger. Det betyder, at der nu vil være et antal filer i den normale MongoDB-mappe med bruger:gruppen root:root .

Dette vil forårsage fejl, når du forsøger at starte den som en normal tjeneste igen, fordi mongodb-brugeren (som tjenesten vil forsøge at køre som) ikke vil have tilladelse til at få adgang til disse root:root filer, og mest bemærkelsesværdigt vil den sandsynligvis ikke være i stand til at skrive til logfilen for at give dig nogen information.

Derfor, for at køre det som en normal tjeneste, skal vi rette disse tilladelser. Først skal du sørge for, at MongoDB ikke kører som root i øjeblikket, derefter:

cd /var/log/mongodb
sudo chown -R mongodb:mongodb .
cd /var/lib/mongodb
sudo chown -R mongodb:mongodb .

Det burde ordne det (forudsat at user:group er mongodb:mongodb ), selvom det nok er bedst at verificere med en ls -al eller lignende for at være sikker. Når dette er gjort, skulle du være i stand til at få tjenesten til at starte igen.



  1. Hvordan forbinder man sikkert til Heroku Redis via kommandolinjen?

  2. MongoDB indlejret opslag med 3 niveauer

  3. Fjern alle felter, der er nul

  4. forbinder til lokal mongodb fra docker container