sql >> Database >  >> NoSQL >> MongoDB

MongoDB op Ubuntu start niet als een service, niets in het logboek

Oké, dit komt allemaal neer op permissies, maar laten we het stap voor stap bekijken. Wanneer u sudo mongod . uitvoert het laadt helemaal geen configuratiebestand, het begint letterlijk met de gecompileerde standaardwaarden - poort 27017, databasepad van /data/db enz. - daarom kreeg je de foutmelding dat je die map niet kon vinden. De "Ubuntu-standaard" wordt alleen gebruikt als je het naar het configuratiebestand wijst (als je het servicecommando gaat gebruiken, wordt dit achter de schermen voor je gedaan).

Vervolgens heb je het als volgt uitgevoerd:

sudo mongod -f /etc/mongodb.conf

Als er eerder geen problemen waren, zullen die er nu zijn - je hebt het proces gedraaid, met je normale configuratie (wijzend naar je gebruikelijke dbpath en log) als rootgebruiker. Dat betekent dat er nu een aantal bestanden in die normale MongoDB-map zullen zijn met de gebruiker:groep van root:root .

Dit zal fouten veroorzaken wanneer u het opnieuw als een normale service probeert te starten, omdat de mongodb-gebruiker (die de service zal proberen uit te voeren) geen toestemming heeft om toegang te krijgen tot die root:root bestanden, en het meest opvallende is dat het waarschijnlijk niet in staat zal zijn om naar het logbestand te schrijven om u informatie te geven.

Om het als een normale service uit te voeren, moeten we die machtigingen daarom herstellen. Zorg er eerst voor dat MongoDB momenteel niet als root wordt uitgevoerd en vervolgens:

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

Dat zou het moeten oplossen (ervan uitgaande dat de gebruiker:groep mongodb:mongodb is) ), hoewel het waarschijnlijk het beste is om te verifiëren met een ls -al of vergelijkbaar voor de zekerheid. Zodra dit is gebeurd, zou u de service opnieuw moeten kunnen starten.



  1. Duplicaten verwijderen bij gebruik van $unionWith in MongoDB

  2. Hoe verhoog ik een Getalwaarde in Mongoose?

  3. Redis-cache versus direct geheugen gebruiken

  4. MongoDB-verschillen tussen NumberLong en eenvoudig geheel getal?