установка mongodb не удалась - PullRequest
1 голос
/ 22 ноября 2011

Мне нужно было изучить node.js и mongodb, которые требуют от меня использования моего Mac OSX, поэтому я новичок в интерфейсе командной строки оболочки.

Проблема: Когда я следовал инструкциям на веб-сайте mongodb, установил mongodb и попытался запустить, я получил следующие сообщения об ошибках.Есть идеи, что пошло не так?

Что я сделал:

  1. brew install mongodb
  2. sudo mkdir -p /data/db
  3. sudo chmod 0755 /data/db
  4. sudo chown mongod:mongod /data/db

Ошибка: chown: mongod: Invalid argument

Что я сделал дальше:

  1. mongod

Ошибка:

Mon Nov 21 18:55:08 [initandlisten] MongoDB starting : pid=28304 port=27017 dbpath=/data/db/ 64-bit host=MacBook-Air.local
Mon Nov 21 18:55:08 [initandlisten] db version v2.0.1, pdfile version 4.5
Mon Nov 21 18:55:08 [initandlisten] git version: 3a5cf0e2134a830d38d2d1aae7e88cac31bdd684
Mon Nov 21 18:55:08 [initandlisten] build info: Darwin erh2.10gen.cc 9.6.0 Darwin Kernel Version 9.6.0: Mon Nov 24 17:37:00 PST 2008; root:xnu-1228.9.59~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_40
Mon Nov 21 18:55:08 [initandlisten] options: {}
Mon Nov 21 18:55:08 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
Mon Nov 21 18:55:08 dbexit: 
Mon Nov 21 18:55:08 [initandlisten] shutdown: going to close listening sockets...
Mon Nov 21 18:55:08 [initandlisten] shutdown: going to flush diaglog...
Mon Nov 21 18:55:08 [initandlisten] shutdown: going to close sockets...
Mon Nov 21 18:55:08 [initandlisten] shutdown: waiting for fs preallocator...
Mon Nov 21 18:55:08 [initandlisten] shutdown: lock for final commit...
Mon Nov 21 18:55:08 [initandlisten] shutdown: final commit...
Mon Nov 21 18:55:08 [initandlisten] shutdown: closing all files...
Mon Nov 21 18:55:08 [initandlisten] closeAllFiles() finished
Mon Nov 21 18:55:08 [initandlisten] shutdown: removing fs lock...
Mon Nov 21 18:55:08 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
Mon Nov 21 18:55:08 dbexit: really exiting now

Выполнение ls -ld /data/db дает:

drwxr-xr-x  2 root  wheel  68 Nov 21 18:46 /data/db

Ответы [ 4 ]

1 голос
/ 22 ноября 2011

Nyxynyx-

Похоже, проблема с правами доступа к файлам. Вы создали / data / db как root, поэтому root является владельцем, и команда chown завершилась неудачно (у вас уже есть пользователь в вашей системе с именем mongod? Если нет, эта команда не будет выполнена), поэтому владелец все еще был root. Но затем вы запустили mongod как обычный пользователь, поэтому он не смог создать файл блокировки в каталоге данных. Вы могли бы:

  1. Запуск mongod от имени пользователя root
  2. Или создайте пользователя mongod и снова запустите «chown» для mongod, и запустите mongod от имени пользователя mongod
  3. Или измените владельца каталога данных на текущую учетную запись пользователя и запустите mongo в качестве учетной записи пользователя.
0 голосов
/ 19 февраля 2015

Что ты сделал:

1.`brew install mongodb`-fine
2.`sudo mkdir -p /data/db`-fine
3.`sudo chmod 0755 /data/db`-fine
4.`sudo chown mongod:mongod /data/db`-fine

Теперь выполните следующий шаг:

./mongod --dbpath /data/db --port 27017

./mongo --port 27020

0 голосов
/ 11 января 2014

вам нужно запустить mongod с пользователем root, просто введите следующую команду

sudo mongod
0 голосов
/ 17 сентября 2012

У меня была такая же проблема, и вот как я действительно легко ее исправил:

Моя БД была заполнена ненужным мусором, который мне больше не нужен, поэтому я удалил папку /data/ через Терминал и повторно-создал его с помощью:

sudo mkdir /data/

Я думаю, что создание папки с root-доступом через терминал было причиной проблемы.Вместо этого я просто снова удалил все, а затем перешел в корневую папку с помощью Finder.

Щелкните правой кнопкой мыши> Новая папка> введите пароль> переименуйте в данные> новая папка> переименуйте в db

Тогда я просто запустил mongod, как обычно, и это сработало!

Я знаю, что это «дурацкий» способ действий, позволяющий избежать всех хакерских разрешений и тому подобное, но это сработало!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...