sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB på Ubuntu kommer inte att starta som en tjänst, ingenting i loggen

OK, allt detta handlar om behörigheter, men låt oss ta det steg för steg. När du kör sudo mongod den laddar inte en konfigurationsfil alls, den börjar bokstavligen med de kompilerade i standardvärden - port 27017, databassökväg till /data/db etc. - det är därför du fick felet om att du inte kunde hitta den mappen. "Ubuntu default" används bara när du pekar på inställningsfilen (om du börjar använda servicekommandot görs detta för dig bakom kulisserna).

Därefter körde du det så här:

sudo mongod -f /etc/mongodb.conf

Om det inte var problem innan, så kommer det att finnas nu - du har kört processen, med din normala konfiguration (pekar på din vanliga dbpath och logg) som root-användare. Det betyder att det nu kommer att finnas ett antal filer i den normala MongoDB-mappen med user:group av root:root .

Detta kommer att orsaka fel när du försöker starta den som en normal tjänst igen, eftersom mongodb-användaren (som tjänsten kommer att försöka köra som) inte kommer att ha behörighet att komma åt dessa root:root filer, och framför allt kommer den förmodligen inte att kunna skriva till loggfilen för att ge dig någon information.

Därför, för att köra den som en normal tjänst, måste vi fixa dessa behörigheter. Se först till att MongoDB för närvarande inte körs som root, sedan:

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

Det borde fixa det (förutsatt att user:group är mongodb:mongodb ), även om det förmodligen är bäst att verifiera med en ls -al eller liknande för att vara säker. När detta är gjort bör du kunna få tjänsten att starta på nytt.



  1. Vad är ett TransientTransactionError i Mongoose (eller MongoDB)?

  2. Hur implementerar man has_many :genom relationer med Mongoid och mongodb?

  3. Meteor:Oväntad mongo exit-kod 100. Startar om. Kan inte starta mongo-servern

  4. Uppdatera fält med ett annat fälts värde i dokumentet