MongoDB 3.0.2 не запустится после обновления до Ubuntu 15.10
Я недавно обновился до Ubuntu 15.10, после чего MongoDB 3.0.2 не запускается.
$ sudo service mongod start
который выдаст ошибку:
Failed to start mongod.service: Unit mongod.service failed to load: No such file or directory.
5 ответов
Это просто отсутствие служебного файла для systemd. Нет необходимости возвращаться к выскочкам, как это делал Kartik, или использовать репозиторий, отличный от описанного в https://docs.mongodb.org/manual/installation/.
Создать файл /lib/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/mongodb.conf
[Install]
WantedBy=multi-user.target
Эта ошибка произошла из-за проблемы с новой Ubuntu (15 и вперед).
Системой инициализации по умолчанию является systemd, который ранее был Upstart. Итак, вам нужно установить Upstart, перезагрузить вашу систему, и теперь вы можете запустить сервис mongodb.
- Установить Upstart
sudo apt-get install upstart-sysv
- Перезагрузите вашу систему
sudo service mongod start
mongod start/running, process 3371
Я использовал пакет Debian в Ubuntu 15.10
echo "deb http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
У меня были подобные проблемы после обновления до 15.10.
Там может быть много проблем, но в зависимости от причины вашей проблемы вы можете запустить mongodb через init.d:
sudo /etc/init.d/mongodb start
Это сработало для меня, но это не долгосрочное решение, так как вам нужно запускать его после каждого перезапуска или добавлять его в задачи запуска. Итак, я следовал следующему:
1) создание служебного файла, как объяснено в "sclausen".
2) перезагрузите сервис, запустив:
sudo systemctl daemon-reload
3) побежал sudo service mongodb start
4) Команда работала без вывода. Итак, я проверил, запустив mongo
и получил ошибку сокета:
Error: connect ECONNREFUSED 127.0.0.1:27017
at Object.exports._errnoException (util.js:870:11)
at exports._exceptionWithHostPort (util.js:893:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1062:14)
5) просмотрел логи tail -n 50 /var/log/mongodb/
и обнаружил основную ошибку:
2016-02-26T14:28:23.538+1100 E NETWORK [initandlisten] Failed to unlink socket file /tmp/mongodb-27017.sock errno:1 Operation not permitted
6) удалил проблемный файл сокета: sudo rm /tmp/mongodb-27017.sock
как предложено в этой теме: https://stackoverflow.com/questions/29813648/failed-to-unlink-socket-file-error-in-mongodb-3-0
7) повторно запустил сервис: sudo service mongodb start
в тот момент все было хорошо, и Боб вернулся на законную должность моего дяди.
В моем случае у меня Ubuntu 16.04.1, я устанавливал MongoDB 3.2.11 и получал ту же ошибку. После нескольких повторных попыток, он, наконец, сработал, "включив" службу:
systemctl enable mongod.service
Тогда это просто сработало