почему я не могу начать mongodb - PullRequest
35 голосов
/ 27 апреля 2011

это ошибка:

(mysite)zjm1126@zjm1126-G41MT-S2:~$ /usr/local/mongodb/bin/mongod 
/usr/local/mongodb/bin/mongod --help for help and startup options
Wed Apr 27 10:02:41 [initandlisten] MongoDB starting : pid=2652 port=27017 dbpath=/data/db/ 32-bit 

** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
**       see http://blog.mongodb.org/post/137788967/32-bit-limitations
**       with --dur, the limit is lower

Wed Apr 27 10:02:41 [initandlisten] db version v1.8.1, pdfile version 4.5
Wed Apr 27 10:02:41 [initandlisten] git version: a429cd4f535b2499cc4130b06ff7c26f41c00f04
Wed Apr 27 10:02:41 [initandlisten] build sys info: Linux bs-linux32.10gen.cc 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_37
Wed Apr 27 10:02:41 [initandlisten] exception in initAndListen std::exception: Unable to create / open lock file for lockfilepath: /data/db/mongod.lock errno:13 Permission denied, terminating
Wed Apr 27 10:02:41 dbexit: 
Wed Apr 27 10:02:41 [initandlisten] shutdown: going to close listening sockets...
Wed Apr 27 10:02:41 [initandlisten] shutdown: going to flush diaglog...
Wed Apr 27 10:02:41 [initandlisten] shutdown: going to close sockets...
Wed Apr 27 10:02:41 [initandlisten] shutdown: waiting for fs preallocator...
Wed Apr 27 10:02:41 [initandlisten] shutdown: closing all files...
Wed Apr 27 10:02:41 closeAllFiles() finished
Wed Apr 27 10:02:41 [initandlisten] shutdown: removing fs lock...
Wed Apr 27 10:02:41 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
Wed Apr 27 10:02:41 dbexit: really exiting now

Ответы [ 7 ]

86 голосов
/ 27 апреля 2011

У учетной записи пользователя, которая запускает MongoDB, должны быть права на запись в каталог /data/db/ ... вы можете изменить это следующим образом ...

Эта команда изменит владельца /data/db/ на используемую учетную запись пользователя.

$ sudo chown `id -u` /data/db
$ mongod 

Если у вас все еще возникают проблемы с запуском MongoDB, вам нужно удалить /data/db/mongod.lock, а затем запустить восстановление в вашей базе данных ...

mongod --repair

Подробнее о команде восстановления здесь .

14 голосов
/ 27 апреля 2011

Либо sudo вызов mongod, либо измените права доступа /data/db/mongod.lock, чтобы он был доступен для записи вами.

11 голосов
/ 09 мая 2013

Я решил эту проблему, выполнив chown на mongodb, т.е.

sudo chown -R mongodb:mongodb /data

Это потому, что когда вы делаете

ls -lrth /data
drwxr-xr-x 2 mongodb mongodb  6 Jan  5 02:31 journal
-rwxr-xr-x 1 mongodb mongodb  0 Jan  5 02:31 mongod.lock
drwxr-xr-x 2 ubuntu  root    24 May  8 20:02 configdb

Надеюсь, это поможет.

5 голосов
/ 05 мая 2014

Убедитесь, что у вас не запущен экземпляр mongod.

Это то, что сработало для меня. Я проверил, запущен ли экземпляр в фоновом режиме, посмотрев в терминал следующим образом: PS Aux | Греп Монго

и я увидел, что там было: 48358 бла бла монгод

поэтому я убил его: убить 48358

и тогда я смог запустить его нормально.

4 голосов
/ 18 декабря 2015

Вот, как я решил это

  1. После удаления файла блокировки я восстановил его с помощью sudo mongod --repair --config=/etc/mongodb.conf, После этого я проверил разрешение mongod.lock с помощью ls -l /var/lib/mongodb/mongod.lock
  2. это былопоказывая, что root является владельцем файла блокировки, поэтому я изменил его обратно на mongodb, используя sudo chown mongodb:mongodb /var/lib/mongodb/*
  3. , затем перезапустите службу mongodb, используя sudo service mongodb restart
0 голосов
/ 07 февраля 2015

На Mac OSX Yosemite после стандартной установки с brew:

sudo chown -R `id -u` /data/db

если он не запускается (проверьте, нет ли зависания и блокировки соединений):

lsof -i:27017

выводит что-то вроде:

COMMAND   PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
mongod  16948 andi    8u  IPv4 0x883a71bc9412939d      0t0  TCP *:27017 (LISTEN)

принять значение PID и запустить:

kill -9 <PID>

теперь вы сможете запустить сервер монго: mongod, а затем, например, в отдельном окне консоли подключиться к нему с помощью mongo

0 голосов
/ 05 марта 2014

Если вы хотите спасти члена набора реплик , не используйте этот метод, описанный выше. Вместо этого используйте процедуры, описанные в ReSync-документации MongoDB .

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