Le fichier journal vous indique que vous avez un "ancien fichier de verrouillage" . MongoDB conserve un fichier de verrouillage pendant son exécution. Il crée ce fichier lorsqu'il est démarré et le supprime lorsqu'il est arrêté. Lorsque l'ordinateur plante (ou que MongoDB plante, par exemple via kill
), ce fichier n'est pas supprimé et la base de données ne démarre donc pas. L'existence de ce fichier indique un arrêt incorrect de MongoDB.
Deux choses peuvent être faites :
-
S'il s'agit d'une machine de développement et que vous n'avez pas utilisé votre base de données (ni vos programmes), vous pouvez supprimer le fichier manuellement. Pour MongoDB 2.2.2 exécuté sur Ubuntu 12.10, c'est dans
/var/lib/mongodb/mongod.lock
. Pour les autres versions, le fichier peut se trouver dans un chemin différent ou il peut être nommémongo.lock
. -
La voie la plus sûre consiste à suivre le guide de durabilité et de réparation de MongoDB. En résumé, pour une machine avec la configuration ci-dessus, vous devez exécuter les commandes suivantes :
sudo -u mongodb mongod --repair --dbpath /var/lib/mongodb/ sudo service mongod start