Таким образом, я пытаюсь установить Mongodb на Ubuntu 16.04, но я сталкиваюсь с проблемой.
при выполнении:
sudo systemctl status mongodb
Я получаю следующее:
mongodb.service - High-performance, schema-free document-oriented database
Loaded: loaded (/etc/systemd/system/mongodb.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2016-09-10 14:02:22 CEST; 14s ago
Docs: https://docs.mongodb.org/manual
Process: 8724 ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf (code=exited, status=14)
Main PID: 8724 (code=exited, status=14)
Согласно документам монго, status=14:
"Returned by MongoDB applications which encounter an unrecoverable error, an uncaught exception or uncaught signal. The system exits without performing a clean shut down."
Я действительно не указываю на меня ни в каком конкретном направлении.
Мой /etc/systemd/system/mongodb.service
похож на это:
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
[Install]
WantedBy=multi-user.target
Какая-либо мысль о том, какова может быть причина этого?
Спасибо
После поиска с помощью Google вокруг некоторое время. Я нашел, что это вызвано тем, что установка разрешения на/var/lib/mongodb и/tmp/mongodb-27017.lock является неправильной. Необходимо будет изменить владельца на monogdb пользователя
chown -R mongodb:mongodb /var/lib/mongodb
chown mongodb:mongodb /tmp/mongodb-27017.sock
Мой /var/lib/mongodb
был поврежден, rm
его установка и переустановка mongo сработали.
я попробовал это, и это сработало:
sudo nano /etc/mongod.conf
прокомментируйте строку «bind ip».
sudo mongod --auth --port 27017 --dbpath /data/db
потом я побежал
sudo service mongod restart
С помощью этого моя ошибка исчезла:
TMP
: cd /tmp
ls *. sock
chown mongodb:mongodb
sudo service mongod start
sudo service mongod status
sudo mkdir /var/lib/mongodb
sudo mkdir /var/log/mongodb
sudo chown -R mongodb:mongodb /var/lib/mongodb
sudo chown -R mongodb:mongodb /var/log/mongodb
chown mongodb:mongodb /tmp/mongodb-27017.sock
sudo service mongod restart
В какой-то момент я также получил статус 14, но не из-за моих файлов .lock.
Похоже, все в вашем dbPath (в моем случае /data/mongodb) должно принадлежать mongodb. В моем случае два файла и файлы в папке журнала принадлежали пользователю root, возможно, потому, что я запустил команду mongod с помощью sudo вместо пользователя mongodb (как настроено в mongod.service).
sudo chown mongodb:mongodb /data/mongodb/ -R
Чтобы найти мою проблему, мне помогло установить уровень детализации на 5 в /etc/mongod.conf:
systemLog:
verbosity: 5
и запустить tail /var/log/mongodb/mongodb.log -n 100
после sudo systemctl start mongod
Чтобы это работало, mongod.conf должен быть загружен mongod. mongod.service делает это с параметром --config.
Не забудьте удалить многословие, когда ваш mongodb снова заработает, потому что этот файл журнала может стать очень большим.
только для новичков, если вы пытаетесь выполнить следующие действия и получаете ошибки:
sudo chown -R mongodb:mongodb /var/lib/mongodb
sudo chown mongodb:mongodb /tmp/mongodb-27017.sock
sudo service mongod restart
тогда попробуйте проверить статус
sudo systemctl status mongod
он покажет активен..
Эта ошибка возникла у меня только потому, что место на диске было заполнено. И решил после удаления некоторых неиспользуемых файлов.