Обслуживание Mongodb не начнется
Я не уверен, почему, и служба работала нормально только вчера, я внезапно не могу запустить MongoDB.
[[email protected] ~]# service mongod start
Starting mongod: Thu Aug 29 23:26:07.550
Thu Aug 29 23:26:07.550 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Aug 29 23:26:07.550
about to fork child process, waiting until server is ready for connections.
forked process: 5078
all output going to: /var/log/mongo/mongod.log
ERROR: child process failed, exited with error number 100
[FAILED]
Я просмотрел /var/log/mongo/mongod.log и следующее:
***** SERVER RESTARTED *****
Thu Aug 29 23:29:05.874 [initandlisten] MongoDB starting : pid=5118 port=27017 dbpath=/var/lib/mongo 32-bit host=purr.ipetfindr.com
Thu Aug 29 23:29:05.874 [initandlisten]
Thu Aug 29 23:29:05.874 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
Thu Aug 29 23:29:05.874 [initandlisten] ** 32 bit builds are limited to less than 2GB of data (or less with --journal).
Thu Aug 29 23:29:05.874 [initandlisten] ** Note that journaling defaults to off for 32 bit and is currently off.
Thu Aug 29 23:29:05.874 [initandlisten] ** See http://dochub.mongodb.org/core/32bit
Thu Aug 29 23:29:05.874 [initandlisten]
Thu Aug 29 23:29:05.874 [initandlisten] ** WARNING: You are running in OpenVZ. This is known to be broken!!!
Thu Aug 29 23:29:05.875 [initandlisten]
Thu Aug 29 23:29:05.875 [initandlisten] db version v2.4.6
Thu Aug 29 23:29:05.875 [initandlisten] git version: b9925db5eac369d77a3a5f5d98a145eaaacd9673
Thu Aug 29 23:29:05.875 [initandlisten] build 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_49
Thu Aug 29 23:29:05.875 [initandlisten] allocator: system
Thu Aug 29 23:29:05.875 [initandlisten] options: { config: "/etc/mongod.conf", dbpath: "/var/lib/mongo", fork: "true", logappend: "true", logpath: "/var/log/mongo/mongod.log", pidf$
**************
Unclean shutdown detected.
Please visit http://dochub.mongodb.org/core/repair for recovery instructions.
*************
Thu Aug 29 23:29:05.875 [initandlisten] exception in initAndListen: 12596 old lock file, terminating
Thu Aug 29 23:29:05.875 dbexit:
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: going to close listening sockets...
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: going to flush diaglog...
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: going to close sockets...
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: waiting for fs preallocator...
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: closing all files...
Thu Aug 29 23:29:05.875 [initandlisten] closeAllFiles() finished
Thu Aug 29 23:29:05.875 dbexit: really exiting now
Как я могу исправить это, перезапустив сервер, и служба, похоже, не работает.
ОШИБКА после ремонта
Не уверен, что делать, это что-то сказать об ошибке, не может открыть файл /var/lib/mongo/ local.ns завершение
***** SERVER RESTARTED *****
Fri Aug 30 04:49:43.041 [initandlisten] MongoDB starting : pid=3300 port=27017 dbpath=/var/lib/mongo 32-bit host=purr.ipetfindr.com
Fri Aug 30 04:49:43.041 [initandlisten]
Fri Aug 30 04:49:43.041 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
Fri Aug 30 04:49:43.041 [initandlisten] ** 32 bit builds are limited to less than 2GB of data (or less with --journal).
Fri Aug 30 04:49:43.041 [initandlisten] ** Note that journaling defaults to off for 32 bit and is currently off.
Fri Aug 30 04:49:43.041 [initandlisten] ** See http://dochub.mongodb.org/core/32bit
Fri Aug 30 04:49:43.041 [initandlisten]
Fri Aug 30 04:49:43.041 [initandlisten] ** WARNING: You are running in OpenVZ. This is known to be broken!!!
Fri Aug 30 04:49:43.041 [initandlisten]
Fri Aug 30 04:49:43.041 [initandlisten] db version v2.4.6
Fri Aug 30 04:49:43.041 [initandlisten] git version: b9925db5eac369d77a3a5f5d98a145eaaacd9673
Fri Aug 30 04:49:43.041 [initandlisten] build 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_49
Fri Aug 30 04:49:43.041 [initandlisten] allocator: system
Fri Aug 30 04:49:43.041 [initandlisten] options: { config: "/etc/mongod.conf", dbpath: "/var/lib/mongo", fork: "true", logappend: "true", logpath: "/var/log/mongo/mongod.log", pidf$
Fri Aug 30 04:49:43.058 [initandlisten] couldn't open /var/lib/mongo/local.ns errno:13 Permission denied
Fri Aug 30 04:49:43.058 [initandlisten] error couldn't open file /var/lib/mongo/local.ns terminating
Fri Aug 30 04:49:43.059 dbexit:
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: going to close listening sockets...
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: going to flush diaglog...
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: going to close sockets...
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: waiting for fs preallocator...
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: closing all files...
Fri Aug 30 04:49:43.059 [initandlisten] closeAllFiles() finished
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: removing fs lock...
Fri Aug 30 04:49:43.059 dbexit: really exiting now
Ответы
Ответ 1
После запуска ремонта я смог запустить proccessor mongod, но с правами root, а это означало, что service mongod start
не будет работать. Чтобы устранить эту проблему, мне нужно было убедиться, что все файлы внутри папки базы данных принадлежат и сгруппированы в mongod. Я сделал это следующим образом:
- Проверьте права доступа к файлу внутри папки базы данных
- обратите внимание, что вам нужно быть в папке dbpath, моя была
/var/lib/mongo
Я пошел в cd /var/lib
- Я побежал
ls -l mongo
- Это показало мне, что базы данных принадлежат root, что неверно. Для этого исправлю следующее:
chown -R mongod:mongod mongo
. Это изменило владельца и группу каждого файла в папке на mongod. (Если вы используете пакет mongodb, chown -R mongodb:mongodb mongodb
)
Я надеюсь, что это поможет кому-то еще в будущем.
Ответ 2
Я решил это, выполнив сначала C:\mongodb\bin\mongod.exe --repair
. Затем, когда я снова запустил MongoDB с помощью C:\mongodb\bin\mongod.exe
, он успешно запустился.
Ответ 3
Я решил это, удалив файл d:\test\mongodb\data\mongod.lock. Когда вы снова подключите mongo db, этот файл будет автоматически создан в той же папке. он работает для меня.
Ответ 4
Для меня причина для того, чтобы начать работу, оказалась файлом блокировки-сироты на /var/lib/mongo/mongo.lock. Когда я удалю этот файл, mongo начнет нормально. До этого у моей системы были грязные аварии. [Fedora 14]
Ответ 5
возможно, это связано с файлом mongod.lock, но если ошибка сохраняется даже после удаления, проверьте пути в файле mongo.conf; это может быть простая проблема, такая как сконфигурированный путь журнала или dbPath не существует (проверьте пути в mongo/conf/mongod.conf и проверьте, существуют ли они, иногда mongo не может создавать свои собственные структуры каталогов, поэтому вам, возможно, придется создать эти каталоги вручную перед запуском mongod).
Ответ 6
Все это в вашем сообщении об ошибке - похоже, что было обнаружено нечистое завершение работы. Подробнее см. http://docs.mongodb.org/manual/tutorial/recover-data-following-unexpected-shutdown/.
В моем опыте обычно используется mongod.exe
с --repair
параметром ro repair DB.
Ответ 7
Я проверял разрешения, но все было хорошо (mongod: mongod).
Поскольку я работаю над большим проектом и с аналогичной проблемой в нашей среде разработчиков, где у нас было script, потребляющее все доступное дисковое пространство, я мог видеть в сообщениях об ошибках, что для mongod требуется как минимум 3.7 ГБ свободного места на диске для запуска..
Я проверил свое собственное дисковое пространство только для того, чтобы увидеть, что осталось меньше 2 ГБ. После перемещения/стирания некоторых данных я могу снова запустить mongod снова.
Надеюсь, что это поможет; -)
Ответ 8
Я попытался удалить файл блокировки, но реальная причина, по которой это произошло со мной, заключалась в том, что я использовал ~/data/db в качестве каталога данных. Монго нуждается в абсолютном пути к базе данных. Как только я изменил его на /home//data/db, я был в бизнесе.
Ответ 9
Удалите файл .lock с пути C:\mongodb\data\и перезапустите службу mongodb.
Ответ 10
Я еще не могу упрекать/комментировать, но +1 для ручного удаления файла блокировки ха-ха.
Моя рабочая область C9 врезалась в меня и вызвала неожиданное завершение работы. API рекомендует:
https://docs.mongodb.com/manual/tutorial/recover-data-following-unexpected-shutdown/
.. но удаление данных /mongo.lock сработало для меня:).
Кроме того, на всякий случай, когда вы получаете отказ в подключении (что случилось со мной), запуск команды восстановления перед удалением файла блокировки может решить вашу проблему (это было мое).
sudo -u mongodb mongod --repair --dbpath/var/lib/mongodb/
Ответ 11
Когда я запустил mongod.exe из Windows Terminal, я получил сообщение Unrecognized option: mp
. Был пустой mp:
в конце mongod.cfg
. Удаление этого решило проблему для меня.