Я установил MongoDb на Ubuntu и смог запустить его, используя sudo service mongod start
. Затем мне пришлось перезапустить его, поскольку я изменил файл конфигурации. Теперь я не могу запустить его снова. Когда я бегу sudo service mongod start
, он просто ничего не говорит (но я не могу подключиться, используя mongo
). И в журнале написано:
2018-06-06T18:45:49.279+0000 I STORAGE [initandlisten] exception in initAndListen: IllegalOperation: Attempted to create a lock file on a read-only directory: /var/lib/mongodb, terminating
Вот разрешения:
ubuntu@ip-172-31-24-92:~$ stat /var/lib/mongodb
Access: (0755/drwxr-xr-x) Uid: ( 1000/ ubuntu) Gid: ( 116/ mongodb)
Итак, как мне запустить его снова?
Дополнительный вопрос: как заставить команду выводить фактическую ошибку, чтобы мне не приходилось каждый раз искать ее в журнале?
P.S. Я давно пользуюсь Windows, только изучаю Linux.
Прежде всего, добро пожаловать в Linux!
Во-вторых, я предполагаю, что в этом случае mongodb запускается как пользователь mongodb
Если это так, то пользователю mongodb необходимо разрешение на запись в каталог.
Учитывая ваши текущие разрешения: владелец ubuntu
которые могут rwx
читать, писать и выполнять, пока группа mongodb
который может только r-x
читать, исполнять. Поскольку пользователь mongodb находится в группе mongodb, но не владеет файлом, он не может писать.
Access: (0755/drwxr-xr-x) Uid: ( 1000/ ubuntu) Gid: ( 116/ mongodb)
Чтобы решить эту проблему, либо сделайте mongodb владельцем sudo chown mongodb:mongodb -R /var/lib/mongodb
или пусть группа тоже пишет sudo chmod 775 -R /var/lib/mongodb
Предполагая, что вы установили сервер mongodb стандартным методом в стандартной системе Linux, вам, вероятно, потребуется перезапустить службу с помощью команды systemctl (SystemD) или service (upstart).
SystemD: sudo systemctl restart mongodb
или sudo systemctl restart mongod
Выскочка: sudo service mongod restart
Если вы используете SystemD, вы можете проверить статус своей службы с помощью
sudo systemctl status mongodb
или sudo systemctl status mongod
И вы можете просматривать журналы своей службы с помощью
sudo journalctl -u mongodb
или sudo journalctl -u mongod