Ответ 1
Mon Jul 25 17:03:54 [initandlisten] couldn't open /var/lib/mongodb/adrise.ns errno:13 Permission denied
Это проблема с разрешениями, выполните следующую команду:
sudo chown -R mongodb:mongodb /var/lib/mongodb
mongodb возвращает ошибки, связанные с файлами доступа при попытке запуска:
[email protected]:~# sudo service mongodb start
mongodb start/running, process 4118
[email protected]:~# Mon Jul 25 17:03:54 [initandlisten] MongoDB starting : pid=4118 port=27017 dbpath=/var/lib/mongodb 64-bit
Mon Jul 25 17:03:54 [initandlisten] db version v1.8.2, pdfile version 4.5
Mon Jul 25 17:03:54 [initandlisten] git version: 433bbaa14aaba6860da15bd4de8edf600f56501b
Mon Jul 25 17:03:54 [initandlisten] build sys info: Linux bs-linux64.10gen.cc 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_41
Mon Jul 25 17:03:54 [initandlisten] couldn't open /var/lib/mongodb/adrise.ns errno:13 Permission denied
Mon Jul 25 17:03:54 [initandlisten] error couldn't open file /var/lib/mongodb/adrise.ns terminating
Mon Jul 25 17:03:54 dbexit:
Mon Jul 25 17:03:54 [initandlisten] shutdown: going to close listening sockets...
Mon Jul 25 17:03:54 [initandlisten] shutdown: going to flush diaglog...
Mon Jul 25 17:03:54 [initandlisten] shutdown: going to close sockets...
Mon Jul 25 17:03:54 [initandlisten] shutdown: waiting for fs preallocator...
Mon Jul 25 17:03:54 [initandlisten] shutdown: closing all files...
Mon Jul 25 17:03:54 closeAllFiles() finished
Mon Jul 25 17:03:54 [initandlisten] shutdown: removing fs lock...
Mon Jul 25 17:03:54 dbexit: really exiting now
или
Mon Jul 25 17:03:22 [initandlisten] MongoDB starting : pid=4095 port=27017 dbpath=/var/lib/mongodb 64-bit
Mon Jul 25 17:03:22 [initandlisten] db version v1.8.2, pdfile version 4.5
Mon Jul 25 17:03:22 [initandlisten] git version: 433bbaa14aaba6860da15bd4de8edf600f56501b
Mon Jul 25 17:03:22 [initandlisten] build sys info: Linux bs-linux64.10gen.cc 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_41
Mon Jul 25 17:03:22 [initandlisten] journal dir=/var/lib/mongodb/journal
Mon Jul 25 17:03:22 [initandlisten] recover : no journal files present, no recovery needed
Mon Jul 25 17:03:22 [initandlisten] info preallocateIsFaster couldn't run; returning false
Mon Jul 25 17:03:22 [initandlisten] exception in initAndListen std::exception: couldn't open file /var/lib/mongodb/journal/j._0 for writing errno:13 Permission denied, terminating
Mon Jul 25 17:03:22 dbexit:
Mon Jul 25 17:03:22 [initandlisten] shutdown: going to close listening sockets...
Mon Jul 25 17:03:22 [initandlisten] shutdown: going to flush diaglog...
Mon Jul 25 17:03:22 [initandlisten] shutdown: going to close sockets...
Mon Jul 25 17:03:22 [initandlisten] shutdown: waiting for fs preallocator...
Mon Jul 25 17:03:22 [initandlisten] shutdown: lock for final commit...
Mon Jul 25 17:03:22 [initandlisten] shutdown: final commit...
Mon Jul 25 17:03:22 [initandlisten] shutdown: closing all files...
Mon Jul 25 17:03:22 closeAllFiles() finished
Mon Jul 25 17:03:22 [initandlisten] shutdown: journalCleanup...
Mon Jul 25 17:03:22 [initandlisten] removeJournalFiles
Mon Jul 25 17:03:22 [initandlisten] shutdown: removing fs lock...
Mon Jul 25 17:03:22 dbexit: really exiting now
когда я пытаюсь:
root @mongo01: ~ # mongodb -f/etc/mongodb.conf
он запускается правильно, любая идея, что вызывает проблемы?
Спасибо
Mon Jul 25 17:03:54 [initandlisten] couldn't open /var/lib/mongodb/adrise.ns errno:13 Permission denied
Это проблема с разрешениями, выполните следующую команду:
sudo chown -R mongodb:mongodb /var/lib/mongodb
У меня была эта проблема довольно внезапно, и я не знаю, почему. Проблема в том, что файл upstart хочет запустить mongo в качестве пользователя mongodb. От /etc/init/mongodb.conf
:
if [ "x$ENABLE_MONGODB" = "xyes" ]; then exec start-stop-daemon --start --quiet --chuid mongodb --exec /usr/bin/mongod -- --config /etc/mongodb.conf; fi
Часть chuid сообщает, что она запускается как другой пользователь, даже если вы используете этот script как root. По какой-то причине, когда я делал ls -l
в /var/lib/mongodb
, я заметил, что все файлы принадлежат root, поэтому наш пользователь mongodb не мог с ними связаться. Я просто сделал это:
sudo chown mongodb:mongodb /var/lib/mongodb
И все было хорошо. Как эта проблема возникла в первую очередь? Не уверен.
Этот файл является вашим первым файлом данных /var/lib/mongodb/adrise.ns
. Собственно, это конкретный файл пространства имен, который идентифицирует другие файлы DB.
Для работы MongoDB процессу mongod
потребуется доступ к двум папкам:
/var/lib/mongodb/
Теперь, если вы запустили это как пользователь root, он должен иметь доступ к каждой папке. Но вы должны убедиться, что никто не блокирует эту папку.
Однако вы должны иметь возможность запускать это с более низкими разрешениями. Обычно вам нужны только разрешения на уровне пользователя, просто убедитесь, что у пользователя есть доступ к этой папке. Если возможно, вы захотите запустить его на уровне ниже root. Многие люди фактически делают пользователя mongodb
и запускают его в своем собственном контексте.
У меня возникла эта проблема, когда я удаляю mongo 3.6 и устанавливаю mongo 2.4! Мое решение: