76 votes

Le service mongodb ne démarre pas

J'ai installé mongodb 2.0.3, en utilisant le paquet debian mongodb-10gen. Tout s'est bien passé, sauf que le service qui est installé par défaut ne se lance pas au démarrage de l'ordinateur. Le site mongod ne s'exécute qu'en tant qu'utilisateur Root. C'est peut-être la raison. Mais pour autant que je sache, les services devraient s'exécuter puisqu'ils sont ajoutés par l'utilisateur Root.

Quelle peut être la solution ?

si j'exécute juste mongod

Tue Mar 27 13:00:44 [initandlisten] couldn't open /data/db/transaction_processor_dummy_development.ns errno:1 Operation not permitted

Si je cours sudo service mongodb start il est dit :

mongodb start/running, process 4861

mais il n'y a pas de processus quand on regarde avec htop et mongo dit :

MongoDB shell version: 2.0.3
connecting to: test
Tue Mar 27 13:02:40 Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84
exception: connect failed

2 votes

Besoin de plus d'informations. Comment essayez-vous de démarrer MongoDB ? Quels messages d'erreur, le cas échéant, voyez-vous dans la console ? Si ma machine [Ubuntu] s'éteint sans un arrêt propre, je dois supprimer manuellement /var/lib/mongodb/mongod.lock avant de redémarrer MongoDB avec sudo service mongodb start .

0 votes

Si elle commence par sudo mongod après avoir enlevé /data/db/mongod.lock il fonctionne correctement.

1 votes

Cela ne s'applique pas ici puisqu'il s'agit de linux, mais les problèmes de Windows peuvent être résolus en utilisant : stackoverflow.com/questions/4661670/

124voto

Nianliang Points 574

Sur mon serveur ubuntu, il suffit d'exécuter :

sudo rm /var/lib/mongodb/mongod.lock
mongod --repair
sudo service mongodb start

1 votes

Merci pour cela ! Mais y a-t-il un moyen de résoudre ce problème de façon permanente ? Je vois certaines des solutions ci-dessous qui impliquent d'exécuter cette commande à chaque redémarrage, mais y a-t-il un meilleur moyen ?

1 votes

Génial, ça a marché pour moi. Heureusement que j'ai fait défiler vers le bas pour trouver la réponse la plus votée. smh StackOverflow, vous devez mettre ces réponses les plus votées en haut quand il n'y a pas de solution acceptée à la question. Je suis curieux de savoir ce qui pourrait être la cause de ce problème MongoDB.

0 votes

@HammanSamuel Le tri des réponses dépend de vous, pas de SO. Si vous triez les réponses par votes, vous verriez cette réponse en haut :)

35voto

Corrigé !

La raison en est que dbpath variable dans /etc/mongodb.conf . Auparavant, j'utilisais mongodb 1.8, où la valeur par défaut pour dbpath était /data/db . L'emploi de débutant mongodb (qui est fourni avec le paquetage mongodb-10gen) invoque la commande mongod avec --config /etc/mongodb.conf option.

Comme solution, je n'ai eu qu'à changer le propriétaire du fichier /data/db de manière récursive.

25voto

Andres Points 639

J'étais s'ennuyer de ce problème, j'ai donc décidé de créer un shell script pour restaurer ma base de données mongo facilement.

#!/bin/sh
sudo rm /var/lib/mongodb/mongod.lock
sudo -u mongodb mongod -f /etc/mongodb.conf --repair
sudo service mongodb start

http://ideone.com/EuqDZ8

14voto

Socratees Points 473

N'oubliez pas que lorsque vous redémarrez la base de données en supprimant de force les fichiers .lock, les données peuvent être corrompues. Votre serveur ne doit pas être considéré comme "sain" si vous le redémarrez de cette façon.

Pour corriger la situation, il faut soit exécuter

mongod --repair

ou

> db.repairDatabase();    

dans le shell mongo pour ramener votre base de données à un état "sain".

1 votes

Merci. J'ai couru mongod --repair et il a mis à jour mes bases de données. C'était nécessaire. Mais le service ne démarre toujours pas.

12voto

AbdullahDiaa Points 698

1 - désactiver fork option dans /etc/mongodb.conf si activé

2 - Réparez votre base de données

mongod --repair --dbpath DBPATH

3 - tuer le processus mongod en cours

Trouver les processus mongo

ps -ef | grep mongo

vous obtiendrez un PID mongod

mongodb   PID     1  0 06:26 ?        00:00:00 /usr/bin/mongod --config /etc/mongodb.conf

Arrêter le processus mongod en cours

kill -9 PID

4 - démarrer le service mongoDB

service mongodb start

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