mongodb 3.4.3 разрешение отказано wiredtiger kv двигатель.ошибка cpp 267 с ubuntu 16

у меня проблемы с lauching mongod как услуга: Как это возможно, что он работает, когда я делаю sudo mongod-f/etc / mongod.conf но при запуске его с помощью сервиса sudo mongod start я получаю сообщение об ошибке в журнале

Assertion: 28595:13: Permission denied src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 267

Я запускаю mongodb на ubuntu 16

Я точно следовал инструкциям в документации mongodb для установки этой версии, так что это ошибка? Любые предложения, как это решить, приветствуются.

дополнительная информация:

сценарий запуска службы mongodb выглядит так и запускается как пользователь mongodb, может ли это быть связано с ошибкой? lib / systemd / system / mongodb.обслуживание:

[Unit]
Description=MongoDB Database Service
Wants=network.target
After=network.target

[Service]
ExecStart=/usr/bin/mongod --config /etc/mongod.conf
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
User=mongodb
Group=mongodb
StandardOutput=syslog
StandardError=syslog

[Install]
WantedBy=multi-user.target

4 ответов


у меня проблемы с lauching mongod как услуга: как это возможно, что он работает, когда я делаю sudo mongod-f /etc/mongod.conf но при запуске его с помощью сервиса sudo mongod start я получаю сообщение об ошибке в журнале

на начинается mongod С root разрешения (ака доступ суперпользователя). Если вы бежите mongod в качестве службы пользователь и группа настраиваются в определении службы (mongodb так как в вашем образец.)

нет необходимости запускать


есть такая же проблема.

что было в /var/log/mongodb / mongod.log:

2017-05-13T13:46:41.152+0700 E STORAGE  [initandlisten] WiredTiger error (13) [1494658001:152518][15821:0x7fb843803cc0], connection: /var/lib/mongodb/journal/WiredTigerPreplog.0000000002: file-remove: unlink: Permission denied
2017-05-13T13:46:41.159+0700 I -        [initandlisten] Assertion: 28595:13: Permission denied src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 267

Итак, мы видим, что что-то не может удалить файл "WiredTigerPreplog.0000000002 " in /var/lib/mongodb/журнал/ Так что я просто дал разрешения, я просто сделал:

sudo chmod 764 /var/lib/mongodb/journal/

Если не поможет, попробуйте:

sudo chown -R mongodb:mongodb /var/lib/mongodb/ && sudo chmod 764 /var/lib/mongodb/journal/

есть три настройки, которые запускают такую проблему:

  1. установка MongoDB настроена для создания файлов базы данных по заданному пути, и этот путь не существует в вашей текущей системе. Этот путь называется dbpath в монго.

в вашем случае, проверьте, если . Если это не так или если он пуст, mongod пытается неправильный dbpath. Вы должны найти его, как правило, под /var/lib/mongodb.

как только вы нашли есть две вещи, которые ты можешь сделать. Сначала скопируйте весь файл оттуда в /data/db. Во-вторых, измените свой dbpath под mongod.conf файл, который находится (в linux) в /etc/mongod.conf. Обязательно запустите mongod с помощью --config указать файл конфигурации.

  1. MongoDB не имеет разрешения на чтение одного или нескольких файлов или каталогов, соответствующих его dbpath.

chown mongodb:mongodb dbpath -R.

  1. MongoDB отсутствует WiredTiger.вес. Это может произойти, если вы удалите файлы под dbpath или если произошел сбой устройства. Мы делаем это для тестирования стратегии восстановления, например.

если вы уверены, что dbpath верен и что нет экземпляра WiredTiger.wt там. Ваша база данных сломана. Нет никаких способов обеспечить целостность, если вы потеряете этот файл. Переустановите mongodb по :

sudo apt-get purge mongodb-org*

sudo rm -r dbpath

sudo apt-get install mongodb-org

изменить : Или скопируйте dbpath из одного из ваших точных копий.


Я хочу добавить комментарий к предыдущему ответу, но, к сожалению, я пока не могу.

sudo mongod --auth --dbpath /data/mongodb/.. для проверки разрешений и изменения местоположения БД. После этого служба mongod больше не запускалась из-за этой проблемы с разрешениями.

Я должен сказать, что команда sudo chown -R mongodb:mongodb /data/mongodb/ не сразу исправил проблему, как ожидалось. Мне пришлось перезагрузиться несколько раз, удалить под /data/mongodb/ выполнить снова.. и, наконец, все прошло хорошо.