sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB na Ubuntu se nespustí jako služba, nic v protokolu

Dobře, to vše závisí na oprávněních, ale pojďme na to krok za krokem. Když spustíte sudo mongod vůbec nenačte konfigurační soubor, doslova začíná zkompilovaným ve výchozím nastavení - port 27017, cesta k databázi /data/db atd. - proto jste dostali chybu, že nemůžete najít tuto složku. "Výchozí nastavení Ubuntu" se použije pouze tehdy, když jej nasměrujete na konfigurační soubor (pokud začnete používat příkaz service, udělá se to za vás v zákulisí).

Dále jste to spustili takto:

sudo mongod -f /etc/mongodb.conf

Pokud nebyly problémy dříve, budou nyní – spustili jste proces se svou normální konfigurací (ukazující na vaši obvyklou cestu dbpath a log) jako uživatel root. To znamená, že v této normální složce MongoDB bude nyní několik souborů s user:group root:root .

To způsobí chyby, když se ji pokusíte znovu spustit jako normální službu, protože uživatel mongodb (pod kterým se služba pokusí spustit) nebude mít oprávnění k přístupu k těmto root:root soubory a především pravděpodobně nebude schopen zapisovat do souboru protokolu, aby vám poskytl nějaké informace.

Proto, abychom ji mohli spustit jako normální službu, musíme tato oprávnění opravit. Nejprve se ujistěte, že MongoDB aktuálně neběží jako root, pak:

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

To by to mělo opravit (za předpokladu, že user:group je mongodb:mongodb ), i když je pravděpodobně nejlepší ověřit pomocí ls -al nebo pro jistotu podobně. Jakmile to uděláte, měli byste být schopni znovu úspěšně spustit službu.



  1. seskupit podle dotazů na sbírku meteorů

  2. Oblast oznámení a zpráv pomocí Redis

  3. Existuje nějaká konvence pro pojmenování kolekce v MongoDB?

  4. Jak zvýšit výkon operace aktualizace v Mongo?