Du har oprettet mappen det forkerte sted
/data/db betyder, at det er direkte under '/'-rodmappen, hvorimod du oprettede 'data/db' (uden den indledende /) sandsynligvis lige inde i en anden mappe, såsom '/root'-hjemmemappen.
Du skal oprette denne mappe som rod
Enten skal du bruge sudo
, for eksempel. sudo mkdir -p /data/db
Eller du skal gøre su -
for at blive superbruger, og opret derefter mappen med mkdir -p /data/db
Bemærk:
MongoDB har også en mulighed, hvor du kan oprette databiblioteket et andet sted, men det er generelt ikke en god idé, fordi det bare komplicerer ting som DB-gendannelse en smule, fordi du altid skal angive db-stien manuelt. Det vil jeg ikke anbefale at gøre.
Rediger:
fejlmeddelelsen du får er "Kan ikke oprette/åbne låsefil:/data/db/mongod.lock errno:13 Tilladelse nægtet" . Den mappe, du oprettede, ser ikke ud til at have de korrekte tilladelser og ejerskab -- den skal kunne skrives af den bruger, der kører MongoDB-processen.
For at se tilladelserne og ejerskabet af '/data/db/'-biblioteket, gør dette:(sådan skal tilladelserne og ejerskabet se ud)
$ ls -ld /data/db/
drwxr-xr-x 4 mongod mongod 4096 Oct 26 10:31 /data/db/
Den venstre side 'drwxr-xr-x' viser tilladelserne for brugeren, gruppen og andre. 'mongod mongod' viser, hvem der ejer mappen, og hvilken gruppe den mappe tilhører. Begge kaldes 'mongod' i dette tilfælde.
Hvis din '/data/db'-mappe ikke har ovenstående tilladelser og ejerskab, skal du gøre dette :
Tjek først hvilken bruger og gruppe din mongo-bruger har:
# grep mongo /etc/passwd
mongod:x:498:496:mongod:/var/lib/mongo:/bin/false
Du bør have en post for mongod i /etc/passwd , da det er en dæmon.
sudo chmod 0755 /data/db
sudo chown -R 498:496 /data/db # using the user-id , group-id
Du kan også bruge brugernavnet og gruppenavnet som følger:(de kan findes i /etc/passwd og /etc/group )
sudo chown -R mongod:mongod /data/db
det burde få det til at fungere..
I kommentarerne nedenfor brugte nogle personer dette:
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
Ulempen er, at $USER er en konto, som har en login-shell. Daemons bør ideelt set ikke have en shell af sikkerhedsmæssige årsager, det er derfor, du ser /bin/false i grepet i adgangskodefilen ovenfor.
Tjek her for bedre at forstå betydningen af mappetilladelserne:
http://www.perlfect.com/articles/chmod.shtml
Tjek måske også en af de tutorials, du kan finde via Google:"UNIX for begyndere"