web-dev-qa-db-fra.com

MongoDB 2.6 ne démarre pas sous Ubuntu 15.04

I installé MongoDB 2.6 sur Ubuntu 15.04 propre et installé:

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

C'est fini sans aucun problème. Cependant, quand j'ai essayé de le démarrer, j'ai eu l'erreur suivante:

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

Comment puis-je réparer cela?

51
Akihiro HARAI

J'ai installé depuis le référentiel Debian Wheeze et cela fonctionne bien.

Tout d’abord, assurez-vous de supprimer le paquet mongodb-org et toutes ses dépendances:

Sudo apt-get purge mongodb-org
Sudo apt-get autoremove

Supprimez l'ancien mongodb.list que vous avez créé:

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

Utilisez plutôt le référentiel 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

Mettre à jour et installer à nouveau:

Sudo apt-get update
Sudo apt-get install -y mongodb-org

Après cela, vous pouvez démarrer avec succès le serveur:

Sudo service mongod start

ou

systemctl start mongod

(comme clarifié par Ernie Hershey en réponse au commentaire de Roman Gaufman ici: https://jira.mongodb.org/browse/SERVER-17742 )

65
Dielson Sales

L’équipe de MongoDB a annoncé qu’elle ne prendrait pas en charge Ubuntu 15.04 et prévoyait de prendre en charge 16.04 (voir https://jira.mongodb.org/browse/SERVER-17742 ).

Ubuntu 15.04 fait progresser le système init par défaut d'Upstart à systemd. Je n'ai pas réussi à démarrer MongoDB 3.0 avec systemd.

Vous pouvez revenir à Upstart en installant upstart-sysv:

Sudo apt-get install upstart-sysv

Ensuite, redémarrez et MongoDB devrait être en place.

J'espère trouver un moyen facile de faire fonctionner MongoDB sur Ubuntu 15.04 sans revenir en arrière.

25
Moshe Revah

J'ai créé un script Systemd qui semble fonctionner pour Ubuntu 15.04+ et 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

Assurez-vous de définir votre répertoire de données dans /etc/mongod.conf

4
benileo

Vous installez à partir des packages publiés directement sur mongodb.org. Vous devez installer à partir des packages fournis dans le référentiel Ubuntu. Les paquets Debian/Ubuntu ont été corrigés avec des unités de service systemd afin de combler le vide laissé par mongodb.org.

(Il n'y a pas de pénurie de fichiers d'unité mongodb.service sur le WWW. Ce n'est pas difficile d'en écrire un. Je l'ai.)

Plus précisément: vous trouverez ne telle unité de service dans le paquetage de la version 2.6 de mongodb-server pour Ubuntu version 15 . Donc, installez ce paquet.

(Notez que les unités de service fournies par Debian/Ubuntu ne s'appliquent pas les directives d'unité de service systemd recommandées par mongo .)

Lectures complémentaires

4
JdeBP

utilisez "mongodb" au lieu de "mongod"

c'est à dire

Sudo service mongodb start

Sudo service mongodb stop
1
Yasitha Bandara

N'est-ce pas la meilleure réponse? À partir d'une question en double: https://askubuntu.com/a/694226/255468 par @sclausen


C'est simplement l'absence d'un fichier de service pour Systemd. Nul besoin de revenir à la situation actuelle comme Kartik ou d'utiliser un référentiel différent de celui décrit dans https://docs.mongodb.org/manual/installation/ .

Créez un fichier /lib/systemd/system/mongodb.service avec le contenu suivant:

[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
1
Sudhanshu

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

Il semble que cela ne sera peut-être pas complètement corrigé pour> 2.6.3 avant Ubuntu 16.04, à moins d’un tollé.

La solution pour moi était donc de publier:

Sudo apt-get install --reinstall mongodb
1
Fabien Thetis

Bon nombre de ces réponses sont liées à Mongo 3.0, alors que la question portait spécifiquement sur 2.6.

J'ai eu du succès à installer la version 2.6 en utilisant le référentiel Debian de 10gen. Cela semble fonctionner parfaitement avec 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

Source: Comment installer MongoDB 2.6 sur Ubuntu 14.10, 14.04 et 12.04 LTS

0
Tom Spencer

Après des heures de recherche, la solution consistait à mettre à jour mon ubuntu du 15.04 au 16.04 en utilisant cette commande:

étape 1

Sudo do-release-upgrade -d 

Cela prendra quelques minutes, alors ne paniquez pas, il vous faudra enlever mongodb:

étape 2

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

Et maintenant, installez mongodb mais en utilisant cette source:

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

étape

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

Et c'est tout.

Remarque: Si vous obtenez une erreur telle que 'E: le type' deb 'dans la première ligne. . . dans le fichier mongodb-org-3.0.list

tout ce que vous avez à faire est d’entrer dans ce fichier en utilisant gedit et de supprimer le mot "au début et à la fin de la phrase.

Ubuntu 15.04+ utilise systemd au lieu de upstart . Commencez par Guide d'installation officiel de MongoDB . Ensuite, utilisez leur officiel 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

Télécharger, corriger, installer le service et installer dir + autorisations

$ 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

Service de démarrage

$ Sudo systemctl start mongod

Vérifier l'état du service

$ Sudo systemctl status mongod
0
A T

Bien que la question concerne la version 2.6. Je recevais exactement la même erreur Unit mongod.service failed to load dans Ubuntu 15.04 pour la version 3.0.6. Finalement résolu en utilisant le même référentiel Wheezy mentionné par Dielson Sales ci-dessus.

Et après l'installation (en suivant les étapes détaillées par @Dielson Sales), l'erreur ci-dessus s'est produite. Voici comment j'ai finalement résolu.

A) Modifiez les fichiers de stockage de données par défaut de MongoDB de /var/lib/mongodb en /data/db

  • Commencez par créer le nouveau répertoire/data/db Sudo mkdir -p /data/db

  • Ouvrez le fichier mongod.conf Sudo gedit /etc/mongod.conf et modifiez la ligne "dbpath" comme ci-dessous

  • Remplacez dbpath =/var/lib/mongodb TO dbpath =/data/db et enregistrez le fichier.

  • Supprimez ensuite l'ancien fichier/var/lib/mongodb par défaut.

  • Maintenant, nous devons créer tous les répertoires/fichiers appartenant à l'utilisateur mongod

B) Alors lancez Sudo chown -R mongodb:mongodb /data/db

Et enfin, je peux enfin commencer par Mongo avec Sudo service mongod start

Et vérifiez que le service fonctionne avec Sudo systemctl status mongod - Il devrait afficher un message similaire à ci-dessous

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

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

Avez détaillé mes étapes dans mon post de blog

0
Rohan_Paul

Tout d’abord, téléchargez mongodb:

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

extraire le téléchargement:

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

lancez le mongod (mongodb-linux-x86_64-3.0.6.tgz/bin/mongod) avec l'attribut -dbpath:

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

Ce peut être un répertoire vide de votre choix

et enfin, lancez mongo (mongodb-linux-x86_64-3.0.6.tgz/bin/mongo)

./mongo

travaillé sur mon ubuntu 15 :)

désolé pour mon mauvais anglais, j'habite au Brésil

Vous avez fait une faute de frappe dans votre commande.

Essayez plutôt d'utiliser ceci: Sudo service mongodb start

0
erdem karayer