43 votes

Exécution de mongodb sur Ubuntu 16.04 LTS

Comment puis-je exécuter Mongodb, en tant que service, sur Ubuntu 16.04 LTS? Il y a quelques jours, j'avais mis à niveau mon serveur vers Ubuntu 16.04. J'ai remarqué que mon service MongoDB ne démarre pas lorsque je redémarre. Essayer d'utiliser

 sudo initctl start mongod 

N'a pas fait le tour. Quelqu'un a une idée comment résoudre ce problème?

86voto

sagi forbes Nagar Points 11

Quiconque de mise à niveau ou installé Ubuntu 16.04 ( également connu sous Ubuntu Xenial xerus ) a remarqué que certains des anciens services cessé de fonctionner. Ce problème est connu à partir de la version 15.04 mais je vais me concentrer sur la version ci-dessus.

Comme c'était mon cas avec MongoDB. Pour rendre une longue histoire courte, Ubuntu déplacé de nouveau à systemd. Une solution commune à ces problèmes, est de revenir à arriviste. Je ne suis pas considérer cette option comme une solution véritable, certainement pas pour le long terme.

Une vraie solution ( à mon humble avis ) le problème est d'écrire systemd script qui va commencer MongodDB. Malheureusement, MongoDB gars avait encore de fournir une.

Donc j'ai dû écrire un à partir de zéro. Pour créer votre propre procédez comme suit:

  1. passer en root à l'aide de
    sudo su
    

ou utilisez sudo pour toutes les étapes suivantes.

  1. créer un service de script (dans cet exemple, le nom du service est Mongodb)

    nano /lib/systemd/system/mongodb.service
    
  2. Contenu du fichier doit être

    [Unité]
    Description=La Base De Données MongoDB Service
    Veut=réseau.cible
    Après=réseau.cible
    
    [Service]
    ExecStart=/usr/bin/mongod --config /etc/mongod.conf
    ExecReload=/bin/kill -HUP $MAINPID
    Redémarrez=toujours
    Utilisateur=mongodb
    Groupe=mongodb
    StandardOutput=syslog
    StandardError=syslog
    
    [Installer]
    WantedBy=multi-utilisateur.cible
    

Vous pouvez également télécharger le fichier à partir d'ici: mongodb.service
Voici une rapide description des domaines importants:
ExecStart - Est la commande à exécuter. Mongo s'installe dans /usr/bin et le fichier de configuration est écrit dans /etc
Utilisateur - l'uid de L'mongod processus.
Groupe - Le gid de l'mongod processus. Notez que l'utilisateur et le groupe sont créés par l'installation.

Maintenant commencer à mongodb:

sudo systemctl start mongodb

Pour arrêter mongodb l'utilisation des services:

sudo systemctl stop mongodb

Pour activer mongodb au démarrage

sudo systemctl enable mongodb.service

Si vous avez besoin de rafraîchir l'utilisation des services de:

 sudo systemctl daemon-reload

39voto

efkan Points 6726

La dernière version de MongoDB n'a plus de choses à l'exception d'une chose pour l'instant. Après l'installation de l' MongoDB sur Ubuntu 16.04.x , exécutez les commandes comme suit:

$ sudo systemctl enable mongod.service
$ sudo systemctl daemon-reload

Maintenant plus susceptibles mongod commence à chaque démarrage automatiquement.


Cette solution fonctionne aussi dans le cas de l'obtention de cette erreur:

N'a pas pu démarrer mongod.service: Unité mongod.service pas trouvé.

Après exécutez les commandes ci-dessus, les commandes en dessous de commencer à travailler:

$ sudo service mongod start
$ mongo

De même, l'ensemble des services installée doit être activé pour fonctionner. Par exemple, après l'installation de l'Ops Manager (un.k.un MMS) dit la documentation pour exécuter le remets ci-dessous.

$ sudo systemctl start mongodb-mms.service

Probable que Ubuntu ne démarre pas le service. Parce qu'il n'est pas encore activé. Pour l'activer, il suffit d'exécuter la commande ci-dessous:

$ sudo systemctl enable mongodb-mms.service
$ sudo systemctl daemon-reload

Puis essayez de démarrer le service:

$ sudo systemctl enable mongodb-mms.service

C'est tout...

26voto

Nicola Pedretti Points 1657

Pour les personnes qui veulent une nouvelle installation

Je lutte avec cela depuis 1 heure. Ensuite, j'ai trouvé cette page L' installation est aussi simple que faire:

 sudo apt-get update
sudo apt-get install mongodb
 

Puis pour vérifier si tout fonctionne:

sudo service mongodb status

Faites-moi savoir si cela fonctionne pour vous!

23voto

LaceCard Points 2599

Les paquets pour 3,2+ contiennent de nouveaux scripts.

Tout d'abord, l'ensemble des instructions pour l'installer:

# If you installed the ubuntu package, remove it, if not skip to key import
sudo apt-get remove mongodb
sudo apt-get autoremove
# import key
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
# add trusty repos
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
# update apt
sudo apt-get update
# install the package
sudo apt-get install -y mongodb-org

Puis démasquer l' mongodb.service de l'emploi (et de l'activer et de le démarrer). Je crois que c'était masquée parce que le package comprend un arriviste, des emplois, de sorte que vous ne voudriez pas que les deux d'entre eux pour commencer. Dans notre cas cependant, c'est clairement ce que nous voulons.

sudo systemctl unmask mongodb
sudo service mongodb enable
sudo service mongodb start

Références:

pertinentes JIRA problème

liés à la question sur Ask Ubuntu

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X