MongoDB 3.0.2 не запустится после обновления до Ubuntu 15.10


14

Я недавно обновился до 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.

Ответы:


21

Это просто отсутствие служебного файла для 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

Смотрите также заметку в askubuntu.com/a/617869/43344 .
JdeBP

Я бы добавил, что вам нужно внимательно следить за владением файлами каталога данных, блокировки tmp fs и файла журнала. Я бездельничал, пытаясь заставить это работать, и sudo service...молча
терпел

4
по какой-то причине файл конфигурации по умолчанию называется, /etc/mongod.confа не/etc/mongodb.conf
mightyuhu

1
@mightyuhu правильный, без определения правильного пути я получаю ошибку. с правильным путем я не получаю неудачу.
user1063287

2
Благодарность! Это правильный ответ. Одна маленькая вещь: название сервиса должно быть, mongodпотому что это то, что они используют на своем официальном сайте. Так mongodb.confдолжно быть mongod.conf и имя файла должно быть/lib/systemd/system/mongod.service
caisah

12

Эта ошибка произошла из-за проблемы с новой Ubuntu (15 и вперед).

Системой инициализации по умолчанию является systemd, который ранее был Upstart . Итак, вам нужно установить Upstart, перезагрузить вашу систему, и теперь вы можете запустить сервис mongodb.

  • Установить Upstart

sudo apt-get install upstart-sysv

  • Перезагрузите вашу систему

sudo service mongod start

mongod start/running, process 3371



@ sowrov, нет, последнее имя службы все еще «mongod»
Клэй Фергюсон

1
после установки upstart-sysv и перезагрузки моей Ubuntu 16.04 она стала пустой; Я должен был пойти в recovery и apt-get удалить его. Эта тема может быть полезна, если вы хотите продолжать использовать upstart askubuntu.com/questions/760615/…
jrgd

5

Я использовал пакет 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

1

У меня были подобные проблемы после обновления до 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 как предложено в этой теме: /programming/29813648/failed-to-unlink-socket-file-error-in-mongodb-3-0

7) повторно запустил сервис: sudo service mongodb start

в тот момент все было хорошо, и Боб вернулся на законную должность моего дяди.


0

В моем случае у меня Ubuntu 16.04.1, я устанавливал MongoDB 3.2.11 и получал ту же ошибку. После нескольких повторных попыток, он, наконец, сработал, «включив» службу:

systemctl enable mongod.service

Тогда это просто сработало

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.