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

51

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

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

    
задан Akihiro HARAI 02.05.2015 в 00:10
источник

13 ответов

65

Я установил из репозитория 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

(как пояснил Эрни Херши в ответ на комментарий Романа Гауфмана: Ссылка )

    
ответ дан Dielson Sales 09.05.2015 в 01:13
25

Команда MongoDB заявляет, что они не будут поддерживать Ubuntu 15.04 и планируют вместо этого поддерживать 16.04 (см. Ссылка ) .

Ubuntu 15.04 продвигает систему инициализации по умолчанию от Upstart до systemd. Мне не удалось запустить MongoDB 3.0 с помощью systemd.

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

sudo apt-get install upstart-sysv

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

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

    
ответ дан Moshe Revah 02.05.2015 в 17:41
4

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

(В файле WWW нет недостающих файлов mongodb.service . Нетрудно их записать. У меня есть.)

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

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

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

ответ дан JdeBP 03.05.2015 в 23:37
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

Ссылка

Убедитесь, что вы установили каталог данных в /etc/mongod.conf

    
ответ дан benileo 03.11.2015 в 22:12
1

Разве это не лучший ответ? Из дублированного вопроса: Ссылка от @sclausen

Это просто отсутствие служебного файла для systemd. Не нужно возвращаться к выскочке, как Kartik, или использовать другой репозиторий, чем описано в Ссылка .

Создайте файл /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
    
ответ дан Sudhanshu 05.01.2016 в 14:33
1

Ссылка

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

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

sudo apt-get install --reinstall mongodb
    
ответ дан Fabien Thetis 09.03.2016 в 15:49
1

используйте «mongodb» вместо «mongod»

то есть

sudo service mongodb start

sudo service mongodb stop
    
ответ дан Yasitha Bandara 03.03.2018 в 18:11
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

    
ответ дан Tom Spencer 16.06.2015 в 11:40
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 и сохраните файл.

  • Затем удалите старый default / var / lib / mongodb

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

B) Итак, запустите sudo chown -R mongodb:mongodb /data/db

И теперь, наконец, я могу начать mongo с 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

Разделите мои шаги в сообщении в блоге

    
ответ дан Rohan_Paul 03.09.2015 в 02:38
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

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

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

./mongo

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

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

    
ответ дан Augusto José Miranda Amaral 08.09.2015 в 14:58
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 и удалить «в начале и в конце предложения».

    
ответ дан أبو محمد حازم 03.01.2016 в 07:13
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
    
ответ дан A T 03.02.2016 в 06:21
0

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

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

    
ответ дан erdem karayer 04.05.2016 в 15:24