Du skapade katalogen på fel ställe
/data/db betyder att den är direkt under '/' rotkatalogen, medan du skapade 'data/db' (utan den inledande /) förmodligen precis i en annan katalog, som '/root'-hemkatalogen.
Du måste skapa den här katalogen som root
Antingen måste du använda sudo
, t.ex. sudo mkdir -p /data/db
Eller så måste du göra su -
för att bli superanvändare och skapa sedan katalogen med mkdir -p /data/db
Obs:
MongoDB har också ett alternativ där du kan skapa datakatalogen på en annan plats, men det är generellt sett ingen bra idé, eftersom det bara komplicerar saker som DB-återställning något, eftersom du alltid måste ange db-sökvägen manuellt. Jag skulle inte rekommendera att du gör det.
Redigera:
felmeddelandet du får är "Det går inte att skapa/öppna låsfil:/data/db/mongod.lock errno:13 Tillstånd nekad" . Katalogen du skapade verkar inte ha rätt behörigheter och äganderätt -- den måste vara skrivbar av användaren som kör MongoDB-processen.
För att se behörigheterna och ägandet av katalogen '/data/db/', gör så här:(så här ska behörigheterna och ägandet se ut)
$ ls -ld /data/db/
drwxr-xr-x 4 mongod mongod 4096 Oct 26 10:31 /data/db/
Den vänstra sidan 'drwxr-xr-x' visar behörigheterna för användaren, gruppen och andra. 'mongod mongod' visar vem som äger katalogen och vilken grupp den katalogen tillhör. Båda kallas 'mongod' i det här fallet.
Om din '/data/db'-katalog inte har behörigheterna och äganderätten ovan gör du detta :
Kontrollera först vilken användare och grupp din mongoanvändare har:
# grep mongo /etc/passwd
mongod:x:498:496:mongod:/var/lib/mongo:/bin/false
Du bör ha en post för mongod i /etc/passwd , eftersom det är en demon.
sudo chmod 0755 /data/db
sudo chown -R 498:496 /data/db # using the user-id , group-id
Du kan också använda användarnamn och gruppnamn, enligt följande:(de finns i /etc/passwd och /etc/group )
sudo chown -R mongod:mongod /data/db
det borde få det att fungera...
I kommentarerna nedan använde vissa personer detta:
sudo chown -R `id -u` /data/db
sudo chmod -R go+w /data/db
eller
sudo chown -R $USER /data/db
sudo chmod -R go+w /data/db
Nackdelen är att $USER är ett konto som har ett inloggningsskal. Daemons bör helst inte ha ett skal av säkerhetsskäl, det är därför du ser /bin/false i grepet i lösenordsfilen ovan.
Kolla här för att bättre förstå innebörden av katalogbehörigheterna:
http://www.perlfect.com/articles/chmod.shtml
Kanske också kolla in någon av handledningarna du kan hitta via Google:"UNIX för nybörjare"