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

Я установил 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.

Как я могу это исправить?

13 ответов

Я установил из репозитория Debian Wheeze, и он работает нормально.

Сначала убедитесь, что вы удалили пакет 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)

Команда MongoDB заявляет, что не будет поддерживать Ubuntu 15.04 и планирует вместо этого поддерживать 16.04 (см. https://jira.mongodb.org/browse/SERVER-17742).

Ubuntu 15.04 переводит систему инициализации по умолчанию с Upstart на systemd. У меня не было успеха, начиная MongoDB 3.0 с systemd.

Вы можете переключиться обратно на Upstart, установив upstart-sysv:

sudo apt-get install upstart-sysv

Затем перезагрузка и MongoDB должны быть.

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

Вы устанавливаете из пакетов, опубликованных непосредственно с mongodb.org. Вы должны выполнять установку из пакетов, поставляемых в репозитории Ubuntu. Пакеты Debian/Ubuntu были исправлены сервисными модулями systemd, чтобы заполнить дыру, оставленную mongodb.org.

(Там нет недостатка в mongodb.service единичные файлы на WWW. Это тоже не сложно написать. Я имею.)

В частности: вы найдете такой сервисный модуль в пакете mongodb-server версии 2.6 для Ubuntu версии 15. Так что просто установите этот пакет.

(Обратите внимание, что сервисные блоки, поставляемые Debian/Ubuntu, не применяют рекомендованные монго директивы системного сервисного модуля.)

дальнейшее чтение

Я создал сценарий 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

https://jira.mongodb.org/browse/SERVER-17742

Похоже, что это возможно не будет полностью исправлено для>2.6.3 до Ubuntu 16.04, если не будет сильного протеста.

Таким образом, решение для меня было выпустить:

sudo apt-get install --reinstall mongodb

Разве это не лучший ответ? Из дублирующего вопроса: /questions/260931/mongodb-302-ne-zapustitsya-posle-obnovleniya-do-ubuntu-1510/260949#260949 от @sclausen


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

Используйте "mongodb" вместо "mongod"

т.е.

sudo service mongodb start

sudo service mongodb stop

Вы сделали опечатку в вашей команде.

Попробуйте использовать это вместо: sudo service mongodb start

Сначала скачайте 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

Это может быть пустой каталог любой на ваш выбор

и наконец, запустите mongo (mongodb-linux-x86_64-3.0.6.tgz/bin/mongo)

./mongo

работал на моем убунту 15:)

извините за мой плохой английский, я живу в Бразилии

После нескольких часов поиска, решение было обновить мою 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 и удалить "в начале и в конце предложения".

Пока вопрос к версии 2.6. Я получаю точно такую ​​же ошибку Unit mongod.service failed to load в моем Ubuntu 15.04 для версии 3.0.6. В конечном итоге решено с помощью того же хранилища wheezy, которое упоминалось выше в 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 на dbpath=/data/db и сохраните файл.

  • Затем удалите старый по умолчанию / var / lib / mongodb

  • Теперь мы должны сделать все каталоги / файлы, принадлежащие пользователю mongod

Б) так беги sudo chown -R mongodb:mongodb /data/db

И теперь, наконец, я могу начать Монго сsudo service mongod start

И ччек, что служба работает с sudo systemctl status mongod - Должно появиться сообщение, подобное приведенному ниже

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

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

Подробно мои шаги в моем блоге

Ubuntu 15.04+ использует systemd вместо upstart. Начните с официального руководства по установке 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

Многие из этих ответов связаны с 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

Другие вопросы по тегам