Вы создали каталог не в том месте
/ data / db означает, что он находится непосредственно в корневом каталоге '/', тогда как вы создали 'data / db' (безведущий /), вероятно, находится просто в другом каталоге, например домашнем каталоге '/ root'.
Вам необходимо создать этот каталог как root
Либо вам нужно использовать sudo
, например sudo mkdir -p /data/db
Или вам нужно сделать su -
, чтобы стать суперпользователем, а затем создать каталог с mkdir -p /data/db
Примечание:
MongoDB также имеет опцию, в которой вы можете создать каталог данных в другом месте, но это, как правило, не очень хорошая идея, потому что это немного усложняет такие вещи, как восстановление БД, потому что вы всегда должны указывать путь db вручную.Я бы не рекомендовал это делать.
Редактировать:
полученное сообщение об ошибке "Невозможно создать / открыть файл блокировки: / data / db /mongod.lock Ошибка: 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» показывает, кому принадлежит каталог и к какой группе принадлежит этот каталог.В этом случае оба называются «монгод».
Если ваш каталог '/ 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 для начинающих"