Създадохте директорията на грешно място
/data/db означава, че е директно под главната директория '/', докато сте създали 'data/db' (без водещото /) вероятно точно в друга директория, като например '/root' домашната директория.
Трябва да създадете тази директория като root
Или трябва да използвате sudo
, напр. sudo mkdir -p /data/db
Или трябва да направите su -
за да станете суперпотребител и след това създайте директорията с mkdir -p /data/db
Забележка:
MongoDB също има опция, при която можете да създадете директорията с данни на друго място, но това като цяло не е добра идея, защото само леко усложнява неща като възстановяване на DB, защото винаги трябва да задавате db-пътя ръчно. Не бих препоръчал да правите това.
Редактиране:
съобщението за грешка, което получавате, е „Не може да се създаде/отваря заключен файл:/data/db/mongod.lock errno:13 Отказано разрешение“ . Директорията, която сте създали, изглежда няма правилните разрешения и собственост – трябва да бъде записана от потребителя, който изпълнява процеса на MongoDB.
За да видите разрешенията и собствеността върху директорията '/data/db/', направете следното:(ето как трябва да изглеждат разрешенията и собствеността)
$ ls -ld /data/db/
drwxr-xr-x 4 mongod mongod 4096 Oct 26 10:31 /data/db/
Лявата страна 'drwxr-xr-x' показва разрешенията за потребителя, групата и други. 'mongod mongod' показва кой е собственик на директорията и на коя група принадлежи тази директория. И двете се наричат 'mongod' в този случай.
Ако вашата директория '/data/db' няма горните разрешения и собственост, направете това :
Първо проверете какъв потребител и група има вашият потребител на mongo:
# grep mongo /etc/passwd
mongod:x:498:496:mongod:/var/lib/mongo:/bin/false
Трябва да имате запис за mongod в /etc/passwd, тъй като това е демон.
sudo chmod 0755 /data/db
sudo chown -R 498:496 /data/db # using the user-id , group-id
Можете също да използвате потребителското име и името на групата, както следва:(те могат да бъдат намерени в /etc/passwd и /etc/group)
sudo chown -R mongod:mongod /data/db
това трябва да го накара да работи...
В коментарите по-долу някои хора използваха това:
sudo chown -R `id -u` /data/db
sudo chmod -R go+w /data/db
или
sudo chown -R $USER /data/db
sudo chmod -R go+w /data/db
Недостатъкът е, че $USER е акаунт, който има обвивка за вход. Демоните в идеалния случай не трябва да имат обвивка от съображения за сигурност, затова виждате /bin/false в grep на файла с парола по-горе.
Проверете тук, за да разберете по-добре значението на разрешенията за директория:
http://www.perlfect.com/articles/chmod.shtml
Може би вижте и един от уроците, които можете да намерите чрез Google:„UNIX за начинаещи“