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. Не потрібно повертатися до початку, як це робив Картик, або використовувати інший сховище, ніж описано в 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
mayyuhu

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

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


1
Назва послуги заразmongodb
sowrov

@sowrov, ні, остання назва служби все ще "mongod"
Clay Ferguson

1
після встановлення upstart-sysv та перезавантаження мого ubuntu 16.04 він зник; Я повинен був піти на відновлення і 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.