Вопрос или проблема
Каждый раз, когда я запускаю MongoDB, она работает около 1 секунды, прежде чем вылететь с следующей ошибкой:
Active: failed (Result: exit-code) since Thu 2020-03-12 09:47:17 EDT; 6s ago
Docs: https://docs.mongodb.org/manual
Process: 1931 ExecStart=/usr/bin/mongod –config /etc/mongod.conf (code=exited, status=100)
Main PID: 1931 (code=exited, status=100)
Mar 12 09:47:14 myServer systemd[1]: Started MongoDB Database Server.
Mar 12 09:47:17 myServer systemd[1]: mongod.service: Main process exited, code=exited, status=100/n/a
Mar 12 09:47:17 myServer systemd[1]: mongod.service: Failed with result ‘exit-code’.
Также в файле логов:
Cannot start server with an unknown storage engine: mmapv1
Я пытался переустанавливать MongoDB, предоставлять пользователю mongodb право собственности на /var/lib/mongodb и удалять файл mongodb.lock, но ничего не помогло.
Любые предложения?
Я решил проблему, изменив механизм хранения на wiredTiger. Я сделал это, отредактировав /etc/mongod.conf и добавив “engine: wiredTiger” после “journal: enabled: true”
.
Ответ или решение
Каждый раз, когда вы сталкиваетесь с ошибкой MongoDB при запуске с кодом завершения status=100, это может вызывать серьёзные преграды в работе ваших приложений. В вашем случае, после изучения информации об ошибке, можно указать несколько путей решения, опираясь на предоставленную вами информацию.
Анализ и решение проблемы
-
Понимание причины ошибки:
- Исходное сообщение об ошибке говорит о невозможности запуска сервера MongoDB с неизвестным хранилищем
mmapv1
. Это указывает на то, что данная версия MongoDB больше не поддерживает указанный движок хранения.
- Исходное сообщение об ошибке говорит о невозможности запуска сервера MongoDB с неизвестным хранилищем
-
Установка поддерживаемого движка хранения:
- Решение, которое вы применили, — использование
wiredTiger
, — является правильным. Это современный и рекомендуемый по умолчанию сервером MongoDB движок хранения, который улучшает производительность и сжатие данных.
- Решение, которое вы применили, — использование
-
Правильное изменение конфигурации:
- Для изменения конфигурации вы внесли правку в файл
/etc/mongod.conf
. Добавление строкиengine: wiredTiger
послеjournal: enabled: true
позволяет MongoDB использовать поддерживаемый движок.
storage: dbPath: /var/lib/mongodb journal: enabled: true engine: wiredTiger
- Для изменения конфигурации вы внесли правку в файл
Рекомендации по устранению проблемы
-
Проверка версии MongoDB:
Убедитесь, что устанавливаете актуальную версию MongoDB, которая поддерживает необходимые функции и соответствует современным стандартам безопасности. -
Проверка файловой системы:
Убедитесь, что файловая система, где размещены данные MongoDB, настроена корректно, и у пользователяmongodb
есть все необходимые права доступа к директории/var/lib/mongodb
. -
Удаление блокировки:
Удаление файла блокировкиmongodb.lock
также может частично решить проблему, хотя полностью её не устраняет в случае неподдерживаемого движка.
Заключение
Следуя вышеуказанным шагам и рекомендациям, вы сможете успешно устранить ошибку status=100 при запуске MongoDB. Регулярное обновление конфигурации и следование документации MongoDB позволит избежать подобных ошибок в будущем. Если проблема сохраняется, рекомендуется обратиться к официальному ресурсу документации MongoDB для более углубленного ознакомления с возможными проблемами и их решениями.
Надеюсь, данное объяснение окажется полезным для устранения вашей проблемы. Если вам нужна дополнительная помощь, не стесняйтесь задавать уточняющие вопросы.