Jag har problem med att starta mongod som en tjänst:Hur är det möjligt att det fungerar när jag gör sudo mongod -f /etc/mongod.conf men när jag startar den med sudo service mongod start får jag ett fel i loggen
sudo kommandot startar mongod med root behörigheter (alias superanvändaråtkomst). Om du kör mongod som en tjänst är användaren och gruppen konfigurerade i tjänstdefinitionen (mongodb för båda i ditt exempel).
Det finns inget behov av att köra mongod process som root användare, och detta avråds starkt enligt den vanliga säkerhetspraxisen enligt principen om minsta privilegium.
Om du vill testa en konfiguration från kommandoraden kan du använda sudo att köra med en angiven användare istället för standardanvändaren (root).
Till exempel:
sudo -u mongodb mongod -f /etc/mongod.conf
I allmänhet är det bäst att använda en tjänstkonfiguration istället för att köra mongod manuellt. Med manuell anrop måste du också komma ihåg att inkludera parametrar som konfigurationsfilens sökväg (eftersom det inte finns någon standard konfigurationssökväg). Utan en konfigurationsfil, mongod använder också standardalternativ som en dbPath av /data/db .
Påstående:28595:13:Tillstånd nekad src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 267
Den troliga orsaken till dina behörighetsfel är att du tidigare har startat mongod som root användare. Vissa kataloger och filer kan nu ägas av root-användaren, så mongodb användaren kan inte komma åt dessa. Ditt specifika fel relaterar till åtkomst till filer i datakatalogen (dvs. den konfigurerade storage.dbPath i mongod.conf ).
Förutsatt att du inte har ändrat standardsökvägarna i din mongod.conf fil, bör du rekursivt kunna justera behörigheter för att matcha vad mongod.service definition förväntar sig.
Se först till att du har stoppat din mongod instans om den körs för närvarande.
Justera sedan rekursivt behörigheter till den förväntade användaren och gruppen:
# storage.dbPath
sudo chown -R mongodb:mongodb /var/lib/mongodb
# systemLog.path
sudo chown -R mongodb:mongodb /var/log/mongodb
Nu bör du kunna starta mongod som en tjänst. Om tjänsten inte startar bör det finnas ytterligare detaljer i mongod loggfil (förutsatt att loggfilen är skrivbar av mongodb tjänstanvändare).