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