Подтвердить что ты не робот

Разрешения каталога данных mongodb

Раньше я хранили все файлы данных mongodb в каталоге /var/lib/mongodb.. и запись dbpath в файле /etc/mongodb.conf была/var/lib/mongodb..

Теперь я хочу изменить каталог данных на/vol/db..так я создал каталог /vol/db и изменил разрешения с помощью sudo chown -R id -u/vol/db и изменил запись пути db на /vol/db в файле /etc/mongodb.conf

теперь, когда я запускаю mongodb, используя sudo service mongodb start..i получаю эту ошибку в /var/log/mongodb/mongodb.log

http://pastebin.com/C0tv8HQN

Мне нужна помощь. Где я ошибаюсь?

4b9b3361

Ответ 1

У меня была такая же проблема, но я смог решить ее благодаря аналогичному вопросу. Вы должны убедиться, что /vol/db/ принадлежит mongodb.

sudo chown mongodb:mongodb /vol/db/

Если вы получите сообщение об ошибке chown: invalid user: 'mongodb:mongodb', отметьте /etc/passwd, чтобы узнать, существует ли аналогичный пользователь (например, mongod).

Ответ 2

Самый простой был бы

sudo chmod 777 /data/db

Ответ 3

Если после изменения разрешений и права собственности на новый путь db вы все еще видите эту проблему, запустите getenforce, чтобы узнать, используете ли вы систему с запуском SELinux в режиме принудительного исполнения. Если getenforce возвращает "принудительное исполнение", вероятно, selinux является причиной ошибки разрешений, поскольку mongodb теперь работает за пределами исходной области контекста, поскольку местоположение db изменено вне /var/lib/...

Я не знаю подробностей, но вместо этого, чтобы решить проблему, не создавая собственную политику selinux для нового контекста, просто отключите selinux: -/

sudo setenforce 0

В идеале вы узнаете, как обновить политику selinux, если вы планируете работать в процессе производства.

Ответ 4

Я предлагаю проверить, что такое ошибка, прочитав журнал mongo

tail -50 /var/log/mongodb/mongodb.log

вы можете сразу найти проблему (включая разрешения)

Ответ 5

Попробуйте следующее:

$ sudo chmod 755 /vol/db && sudo chown $USER /vol/db