Vytvořili jste adresář na nesprávném místě
/data/db znamená, že je přímo pod kořenovým adresářem '/', zatímco 'data/db' (bez úvodního /) jste vytvořili pravděpodobně jen v jiném adresáři, jako je domovský adresář '/root'.
Tento adresář musíte vytvořit jako kořenový
Buď musíte použít sudo
, např. sudo mkdir -p /data/db
Nebo musíte udělat su -
stát se superuživatelem a poté vytvořit adresář pomocí mkdir -p /data/db
Poznámka:
MongoDB má také možnost, kde můžete vytvořit datový adresář na jiném místě, ale to obecně není dobrý nápad, protože to jen mírně komplikuje věci, jako je obnova DB, protože cestu k db musíte vždy zadat ručně. Nedoporučoval bych to dělat.
Upravit:
chybová zpráva, kterou dostáváte, je "Nelze vytvořit/otevřít soubor zámku:/data/db/mongod.lock errno:13 Permission denied" . Zdá se, že adresář, který jste vytvořili, nemá správná oprávnění a vlastnictví – musí do něj zapisovat uživatel, který spouští proces MongoDB.
Chcete-li zobrazit oprávnění a vlastnictví adresáře '/data/db/', proveďte toto:(takto by měla vypadat oprávnění a vlastnictví)
$ ls -ld /data/db/
drwxr-xr-x 4 mongod mongod 4096 Oct 26 10:31 /data/db/
Levá strana 'drwxr-xr-x' zobrazuje oprávnění pro uživatele, skupinu a ostatní. 'mongod mongod' ukazuje, kdo vlastní adresář a do které skupiny tento adresář patří. Oba se v tomto případě nazývají 'mongod'.
Pokud váš adresář '/data/db' nemá výše uvedená oprávnění a vlastnictví, proveďte toto :
Nejprve zkontrolujte, jakého uživatele a skupinu má váš uživatel mongo:
# grep mongo /etc/passwd
mongod:x:498:496:mongod:/var/lib/mongo:/bin/false
Měli byste mít záznam pro mongoda v /etc/passwd , protože je to démon.
sudo chmod 0755 /data/db
sudo chown -R 498:496 /data/db # using the user-id , group-id
Můžete také použít uživatelské jméno a název skupiny následovně:(lze je nalézt v /etc/passwd a /etc/group )
sudo chown -R mongod:mongod /data/db
to by mělo fungovat..
V komentářích níže někteří lidé použili toto:
sudo chown -R `id -u` /data/db
sudo chmod -R go+w /data/db
nebo
sudo chown -R $USER /data/db
sudo chmod -R go+w /data/db
Nevýhodou je, že $USER je účet, který má přihlašovací shell. Daemoni by v ideálním případě neměli mít shell z bezpečnostních důvodů, proto v grep souboru s hesly výše vidíte /bin/false.
Zaškrtněte zde, abyste lépe porozuměli významu oprávnění k adresáři:
http://www.perlfect.com/articles/chmod.shtml
Možná se také podívejte na jeden z návodů, které můžete najít přes Google:"UNIX pro začátečníky"