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

Mongod si stěžuje, že neexistuje složka /data/db

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"



  1. Vytvořte sbírku v MongoDB

  2. Server MongoDB je stále přístupný bez přihlašovacích údajů

  3. Začínáme s CouchDB

  4. Co je třída Hadoop Reducer v MapReduce?