MongoDB 2.6 ne démarre pas sous Ubuntu 15.04


51

J'ai 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?

Réponses:


65

J'ai installé à partir du référentiel Debian Wheeze et cela fonctionne bien.

Premièrement, 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 )


1
J'ai essayé ça et le service n'a pas été trouvé en essayant de commencer Mongod
Moshe Revah

2
Êtes-vous sûr de supprimer automatiquement les dépendances? Je l’ai aussi, mais j’ai réalisé que je n’avais pas supprimé tous les paquets liés à mongodb. Après les avoir tous supprimés et installés à partir du référentiel Wheezy, cela fonctionne parfaitement avec systemd.
Dielson Sales

1
m'a sauvé beaucoup de maux de tête
Srivathsa Harish Venkataramana

1
Je vous remercie. Purge suivi par autoremove (presque oublié) a fait le tour.
Nenad Vukicevic

Dans mon cas, le 14.04 mais probablement le 15.04 /var/log/syslog, la vérification de la tentative échouée, puis la modification /etc/init/mongodb.confpeuvent également aider si vous utilisez un répertoire de données, un répertoire de journal ou une instance d'utilisateur non standard.
Manger chez Joes

25

L’équipe de MongoDB a déclaré 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.


2
C'est la meilleure façon de résoudre ce problème maintenant. Si quelqu'un connaît d'autres moyens, partagez-les ici.
Fernando Kosh

Dans mon cas, l'installation d'upstart-sysv et le redémarrage se bloquent.
Didac Montero

@DidacMontero Regardez wiki.ubuntu.com/SystemdForUpstartUsers pour d'autres options
Moshe Revah

Fonctionne pour moi sur Ubuntu 15.04, merci pour le contournement!
Lil 'Bits

cela a fonctionné parfaitement pour moi.
slimflem

4

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, pour combler le vide laissé par mongodb.org.

(Il n'y a pas de pénurie de mongodb.servicefichiers d'unité sur le WWW. Ce n'est pas difficile d'en écrire un non plus. J'ai.)

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

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

Lectures complémentaires


Toutefois, cette approche ne résout pas le problème de ceux qui veulent MongoDB> = 3.0
Dielson Sales

Oui. Vous n'avez clairement lu ni le deuxième paragraphe ni la lecture supplémentaire.
JdeBP

4

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


1
C'est la meilleure solution.
J. Bruni

le lien ne fonctionne plus
Hotbelgo

Correction du lien.
Benileo

Bien sûr, cela devrait être indiqué comme la meilleure solution.
Wédney Yuri

1

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


C'est simplement l'absence d'un fichier de service pour Systemd. Inutile de revenir à la situation actuelle comme Kartik ou d'utiliser un référentiel différent de celui décrit à l' adresse 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

utilisez "mongodb" au lieu de "mongod"

c'est à dire

sudo service mongodb start

sudo service mongodb stop

0

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

Bien que la question concerne la version 2.6. Je Unit mongod.service failed to loadrecevais exactement la même erreur dans mon 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) Remplacez les fichiers du magasin de données par défaut de MongoDB de / var / lib / mongodb par / 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.confet changez 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 courez sudo chown -R mongodb:mongodb /data/db

Et maintenant enfin je peux commencer mongo avec sudo service mongod start

Et chcek 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 blog


0

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

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

extrait de 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


0

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 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

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 avec gedit et de supprimer le 'au début et à la fin de la phrase.


Cette partie "La solution consistait à mettre à niveau mon ubuntu du 15.04 au 16.04 ..." n'a pas de sens pour le moment, car 16.04 n'est pas encore disponible.
clearkimura

1
@clearkimura Oui, c'est ça. Eh bien, en alpha. Et peu importe, la deuxième version quotidienne d'Ubuntu 16.04 est installée sur mon ordinateur et je n'ai rencontré aucun problème.
Star OS

0

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

Vous avez fait une faute de frappe dans votre commande.

Essayez d'utiliser ceci à la place: sudo service mongodb start

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.