MongoDB 2.6 не запускається на Ubuntu 15.04


51

Я встановив MongoDB 2.6 на чистому встановленому Ubuntu 15.04:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
sudo apt-get update
sudo apt-get install -y mongodb-org

Це закінчилося без проблем. Однак, коли я спробував її запустити, я отримав таку помилку:

$ sudo service mongod start
Failed to start mongod.service: Unit mongod.service failed to load: No such file or directory.

Як я можу це виправити?

Відповіді:


65

Я встановив із сховища хрипів Debian, і він працює чудово.

Спочатку переконайтесь, що ви видалили пакет mongodb-org та всі його залежності:

sudo apt-get purge mongodb-org
sudo apt-get autoremove

Видаліть старий файл mongodb.list, який ви створили:

sudo rm /etc/apt/sources.list.d/mongodb.list

Замість цього використовуйте сховище Debian:

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

Після цього ви можете успішно запустити сервер:

sudo service mongod start

або

systemctl start mongod

(як пояснив Ерні Герші у відповідь на коментар Романа Гауфмана тут: https://jira.mongodb.org/browse/SERVER-17742 )


1
Я спробував це, і сервіс не знайшов при спробі запустити монгод
Моше Рева

2
Ви впевнені, що автоматично усунули залежності? Я теж це зрозумів, але потім зрозумів, що не видалив усі пакети, пов’язані з mongodb. Після вилучення їх та встановлення із сховища хрипів, він працює із системою.
Продаж Дільсона

1
врятував мені багато головного болю
Сріватса Харіш Венкататарамана

1
Дякую. Чистка з наступною авторемоною (майже забула про це) зробила свою справу.
Ненад Вукічевич

У моєму випадку на 14.04, але, ймовірно, на 15.04 хвоста /var/log/syslog, перевірка невдалої спроби, то редагування /etc/init/mongodb.confтакож може допомогти, якщо ви використовуєте нестандартний каталог даних, каталог журналів або екземпляр користувача.
Їжте у Джоса

25

Команда MongoDB каже, що вони не підтримуватимуть Ubuntu 15.04 і планують натомість підтримувати 16.04 (див. Https://jira.mongodb.org/browse/SERVER-17742 ).

Ubuntu 15.04 просуває систему init за замовчуванням від Upstart до systemd. У мене не було успіху запускати MongoDB 3.0 з systemd.

Ви можете повернутися до програми Upstart, встановивши upstart-sysv:

sudo apt-get install upstart-sysv

Потім перезавантажте і MongoDB має бути вгору.

Я сподіваюся знайти простий спосіб запустити MongoDB на Ubuntu 15.04, не перемикаючи речі назад у часі.


2
Це найкращий спосіб вирішити цю проблему на даний момент. Якщо хтось знає інші способи, будь ласка, поділіться тут.
Фернандо Кош

У моєму випадку встановлення upstart-sysv та перезапуск просто виходять з ладу.
Дідак Монтеро

@DidacMontero Подивіться на wiki.ubuntu.com/SystemdForUpstartUsers інші параметри
Moshe Revah

Працює для мене на Ubuntu 15.04, дякую за обхід!
Lil 'Bits

це прекрасно працювало для мене.
slimflem

4

Ви встановлюєте з пакетів, опублікованих безпосередньо з mongodb.org. Вам слід встановити з пакетів, що поставляються у сховищі Ubuntu. Пакети Debian / Ubuntu були зафіксовані за допомогою системних сервісних одиниць, щоб заповнити отвір, залишене mongodb.org.

(Немає дефіциту mongodb.serviceфайлів одиниць на WWW. Записати їх теж не важко. У мене є.)

В Зокрема , ви знайдете такі пристрої а служби в с MongoDB-сервер версії 2.6 пакета для Ubuntu версії 15 . Тому просто встановіть цей пакет.

(Зверніть увагу, що сервісні блоки, що постачаються Debian / Ubuntu, не застосовують рекомендовані mongo директиви системного сервісного блоку .)

Подальше читання


Однак такий підхід не вирішує проблему для тих, хто хоче MongoDB> = 3.0
продажів Dielson

Так. Ви, очевидно, не прочитали ані другого абзацу, ані подальшого читання.
JdeBP

4

Я створив скрипт Systemd, який, здається, працює для Ubuntu 15.04+ та Mongo 3.0+:

[Unit]
Description=High-performance, schema-free document-oriented database
Documentation=man:mongod(1)
After=network.target

[Service]
Type=forking
User=mongodb
Group=mongodb
RuntimeDirectory=mongod
PIDFile=/var/run/mongod/mongod.pid
ExecStart=/usr/bin/mongod -f /etc/mongod.conf --pidfilepath /var/run/mongod/mongod.pid --fork
TimeoutStopSec=5
KillMode=mixed

[Install]
WantedBy=multi-user.target

https://gist.github.com/benileo/ada486d73f58dd93a0ee

Переконайтеся, що ви встановили свій каталог даних /etc/mongod.conf


1
Це найкраще рішення.
Дж. Бруні

посилання більше не працює
Hotbelgo

Виправлено посилання.
benileo

Напевно, це слід позначити як найкраще рішення.
Weddury Yuri

1

Це не найкраща відповідь? З повторного запитання: https://askubuntu.com/a/694226/255468 автор @sclausen


Це просто відсутність сервісного файлу для 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



0

Багато з цих відповідей стосуються Mongo 3.0, тоді як питання, яке задають конкретно про 2.6.

Я мав успіх встановити 2.6, використовуючи сховище Debian з 10gen. Схоже, це прекрасно працює з Ubuntu 15.04.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
sudo apt-get update
sudo apt-get install mongodb-org

Джерело: Як встановити MongoDB 2.6 на Ubuntu 14.10, 14.04 та 12.04 LTS


0

Хоча питання стосується версії 2.6. Я отримував таку саму помилку Unit mongod.service failed to loadв моєму Ubuntu 15.04 для версії 3.0.6. В кінцевому рахунку вирішено за допомогою того ж хрипкого сховища, про яке згадував Dielson Sales вище.

І після встановлення (дотримуючись кроків, детально описаних @Dielson Sales) зіткнулася з вищеописаною помилкою. Ось як я нарешті вирішив.

A) Змініть файли зберігання даних MongoDB за замовчуванням з / var / lib / mongodb на / data / db

  • Спочатку створіть новий / data / db каталог sudo mkdir -p /data/db

  • Відкрийте файл mongod.conf sudo gedit /etc/mongod.confта змініть рядок "dbpath", як показано нижче

  • Замініть dbpath = / var / lib / mongodb TO dbpath = / data / db та збережіть файл.

  • Потім видаліть старий за замовчуванням / var / lib / mongodb

  • Тепер ми повинні зробити всі каталоги / файли, що належать користувачеві mongod

Б) Тож біжи sudo chown -R mongodb:mongodb /data/db

І ось нарешті я можу почати монго sudo service mongod start

І chcek, з яким працює служба sudo systemctl status mongod - У ній повинно з’явитися повідомлення, подібне до наведеного нижче

Loaded: loaded (/etc/init.d/mongod)

Active: active (running) since Thu 2015-09-03 04:57:49 IST; 7s ago

Детально описав мої кроки у своїй публікації в блозі


0

Спочатку скачайте mongodb:

curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz

витяг завантажити:

tar -zxvf mongodb-linux-x86_64-3.0.6.tgz

запустіть mongod (mongodb-linux-x86_64-3.0.6.tgz / bin / mongod) з атрибутом -dbpath:

sudo ./mongod --dbpath /path/of/the/directory

Це може бути порожній каталог будь-якого на ваш вибір

і нарешті, запустіть монго (mongodb-linux-x86_64-3.0.6.tgz / bin / mongo)

./mongo

працював над моїм ubuntu 15 :)

Вибачте за свою погану англійську мову, я живу в Бразилії


0

Через години від пошуку рішенням було оновити мій ubuntu з 15.04 до 16.04 за допомогою цієї команди:

Крок 1

sudo do-release-upgrade -d 

Мине кілька хвилин, тому не панікуйте, ніж вам доведеться видаляти mongodb:

Крок 2

sudo apt-get purge mongodb-org 
sudo apt-get autoremove`  
rm /etc/apt/sources.list.d/mongodb-org-3.0.list`  

А тепер встановіть mongodb, але використовуючи це джерело:

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

Крок 3

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10  
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 mongodb-org
sudo service mongod status

І це все.

Примітка. Якщо ви отримаєте помилку типу "E: тип" deb "у першому рядку. . . у файлі mongodb-org-3.0.list

все, що вам потрібно зробити - це потрапити в цей файл за допомогою gedit та видалити 'на початку та в кінці речення.


Ця частина "Рішенням було оновити мій ubuntu з 15.04 до 16.04 ..." наразі не має сенсу, оскільки 16.04 ще не випущено.
клеаркімура

1
@clearkimura Так. Ну, в альфа. І що б там не було, на моєму комп'ютері інстальована друга щоденна збірка Ubuntu 16.04, і я не бачив жодних проблем.
Зірка ОС

0

Ubuntu 15.04+ використовує systemd замість запуску . Почніть з офіційного посібника з встановлення MongoDB . Потім скористайтеся їх офіційним mongod.service:

[Unit]
Description=High-performance, schema-free document-oriented database

[Service]
User=mongod
Group=mongod
Environment="OPTIONS=--quiet -f /etc/mongod.conf"
ExecStart=/usr/local/bin/mongod $OPTIONS run
PIDFile=/var/run/mongodb/mongod.pid

[Install]
WantedBy=multi-user.target

Завантажте, виправіть, встановіть сервіс та налаштуйте dir + дозволи

$ curl -OL https://raw.githubusercontent.com/mongodb/mongo/1663f45b4e33e058a0203a81f50574a870882c34/rpm/mongod.service
$ sed -i 's/\/usr\/local/\/usr/g' mongod.service
$ sed -i '/Desc/a After=network.target' mongod.service
$ sudo sed -i '0,/\/var\/lib\/mongodb/s//\/data\/db/' /etc/mongod.conf
$ sudo cp mongod.service /lib/systemd/system/mongo.service
$ sudo mkdir -p /data/db
$ sudo chown -R mongodb:mongodb /data
$ sudo systemctl daemon-reload
$ sudo systemctl enable mongod

Початок обслуговування

$ sudo systemctl start mongod

Перевірте стан обслуговування

$ sudo systemctl status mongod

0

Ви зробили друкарську помилку у своїй команді.

Спробуйте скористатися цим: sudo service mongodb start

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.