web-dev-qa-db-fra.com

Le service Mongodb ne démarre pas

Je ne sais pas pourquoi, et le service fonctionnait bien hier, tout à coup, je ne parviens pas à faire démarrer MongoDB.

[root@purr ~]# service mongod start
Starting mongod: Thu Aug 29 23:26:07.550 
Thu Aug 29 23:26:07.550 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Aug 29 23:26:07.550 
about to fork child process, waiting until server is ready for connections.
forked process: 5078
all output going to: /var/log/mongo/mongod.log
ERROR: child process failed, exited with error number 100
                                                           [FAILED]

J'ai regardé dans /var/log/mongo/mongod.log et ce qui suit:

***** SERVER RESTARTED *****


Thu Aug 29 23:29:05.874 [initandlisten] MongoDB starting : pid=5118 port=27017 dbpath=/var/lib/mongo 32-bit Host=purr.ipetfindr.com
Thu Aug 29 23:29:05.874 [initandlisten]
Thu Aug 29 23:29:05.874 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
Thu Aug 29 23:29:05.874 [initandlisten] **   32 bit builds are limited to less than 2GB of data (or less with --journal).
Thu Aug 29 23:29:05.874 [initandlisten] **   Note that journaling defaults to off for 32 bit and is currently off.
Thu Aug 29 23:29:05.874 [initandlisten] **   See http://dochub.mongodb.org/core/32bit
Thu Aug 29 23:29:05.874 [initandlisten]
Thu Aug 29 23:29:05.874 [initandlisten] ** WARNING: You are running in OpenVZ. This is known to be broken!!!
Thu Aug 29 23:29:05.875 [initandlisten]
Thu Aug 29 23:29:05.875 [initandlisten] db version v2.4.6
Thu Aug 29 23:29:05.875 [initandlisten] git version: b9925db5eac369d77a3a5f5d98a145eaaacd9673
Thu Aug 29 23:29:05.875 [initandlisten] build info: Linux bs-linux32.10gen.cc 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Aug 29 23:29:05.875 [initandlisten] allocator: system
Thu Aug 29 23:29:05.875 [initandlisten] options: { config: "/etc/mongod.conf", dbpath: "/var/lib/mongo", fork: "true", logappend: "true", logpath: "/var/log/mongo/mongod.log", pidf$
**************
Unclean shutdown detected.
Please visit http://dochub.mongodb.org/core/repair for recovery instructions.
*************
Thu Aug 29 23:29:05.875 [initandlisten] exception in initAndListen: 12596 old lock file, terminating
Thu Aug 29 23:29:05.875 dbexit:
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: going to close listening sockets...
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: going to flush diaglog...
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: going to close sockets...
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: waiting for fs preallocator...
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: closing all files...
Thu Aug 29 23:29:05.875 [initandlisten] closeAllFiles() finished
Thu Aug 29 23:29:05.875 dbexit: really exiting now

Comment dois-je résoudre ce problème en redémarrant le serveur, et le service ne semble pas fonctionner.

ERREUR après réparation

Vous ne savez pas quoi faire? Dire que quelque chose au sujet d'une erreur ne pourrait pas ouvrir le fichier/var/lib/mongo / local.ns terminating

***** SERVER RESTARTED *****


Fri Aug 30 04:49:43.041 [initandlisten] MongoDB starting : pid=3300 port=27017 dbpath=/var/lib/mongo 32-bit Host=purr.ipetfindr.com
Fri Aug 30 04:49:43.041 [initandlisten]
Fri Aug 30 04:49:43.041 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
Fri Aug 30 04:49:43.041 [initandlisten] **   32 bit builds are limited to less than 2GB of data (or less with --journal).
Fri Aug 30 04:49:43.041 [initandlisten] **   Note that journaling defaults to off for 32 bit and is currently off.
Fri Aug 30 04:49:43.041 [initandlisten] **   See http://dochub.mongodb.org/core/32bit
Fri Aug 30 04:49:43.041 [initandlisten]
Fri Aug 30 04:49:43.041 [initandlisten] ** WARNING: You are running in OpenVZ. This is known to be broken!!!
Fri Aug 30 04:49:43.041 [initandlisten]
Fri Aug 30 04:49:43.041 [initandlisten] db version v2.4.6
Fri Aug 30 04:49:43.041 [initandlisten] git version: b9925db5eac369d77a3a5f5d98a145eaaacd9673
Fri Aug 30 04:49:43.041 [initandlisten] build info: Linux bs-linux32.10gen.cc 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Fri Aug 30 04:49:43.041 [initandlisten] allocator: system
Fri Aug 30 04:49:43.041 [initandlisten] options: { config: "/etc/mongod.conf", dbpath: "/var/lib/mongo", fork: "true", logappend: "true", logpath: "/var/log/mongo/mongod.log", pidf$
Fri Aug 30 04:49:43.058 [initandlisten] couldn't open /var/lib/mongo/local.ns errno:13 Permission denied
Fri Aug 30 04:49:43.058 [initandlisten] error couldn't open file /var/lib/mongo/local.ns terminating
Fri Aug 30 04:49:43.059 dbexit:
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: going to close listening sockets...
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: going to flush diaglog...
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: going to close sockets...
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: waiting for fs preallocator...
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: closing all files...
Fri Aug 30 04:49:43.059 [initandlisten] closeAllFiles() finished
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: removing fs lock...
Fri Aug 30 04:49:43.059 dbexit: really exiting now
31
RussellHarrower

Après avoir exécuté la réparation, j'ai pu démarrer le processus mongod, mais en tant que root, ce qui signifie que service mongod start ne fonctionnerait pas. Pour réparer ce problème, je devais m'assurer que tous les fichiers du dossier de la base de données étaient possédés et regroupés dans mongod. J'ai fait ceci par ce qui suit:

  1. Vérifiez les autorisations de fichier dans votre dossier de base de données
    1. note vous devez être dans votre dossier dbpath le mien était /var/lib/mongo Je suis allé à cd /var/lib 
    2. J'ai couru ls -l mongo
  2. Cela m'a montré que les bases de données appartenaient à root, ce qui est faux. J'ai exécuté ce qui suit pour résoudre ce problème: chown -R mongod:mongod mongo. Cela a changé le propriétaire et le groupe de chaque fichier du dossier en mongod. (Si vous utilisez le paquet mongodb, chown -R mongodb:mongodb mongodb)

J'espère que cela aidera quelqu'un d'autre à l'avenir.

48
RussellHarrower

J'ai résolu ceci en exécutant d'abord C:\mongodb\bin\mongod.exe --repair. Puis, lorsque j'ai de nouveau exécuté MongoDB avec C:\mongodb\bin\mongod.exe, tout a démarré.

14
openNecati

J'ai résolu ce problème en supprimant le fichier d:\test\mongodb\data\mongod.lock. Lorsque vous vous reconnecterez à la base de données mongo, ce fichier sera automatiquement généré dans le même dossier. ça marche pour moi.

8
Dineshaws

c'est probablement dû au fichier mongod.lock, mais si l'erreur persiste même après l'avoir supprimée, vérifiez les chemins dans le fichier mongo.conf; Il peut s'agir d'un problème simple, tel que le journal configuré Path ou dbPath n'existe pas (vérifiez les chemins d'accès dans mongo/conf/mongod.conf et vérifiez s'ils existent, parfois mongo ne peut pas créer ses propres structures de répertoires de création; vous devrez donc créer ces répertoires manuellement avant de commencer Mongod). 

3
user4700203

Pour moi, la raison de ne pas démarrer s’est avérée être un fichier de verrouillage orphelin situé dans /var/lib/mongo/mongo.lock. Lorsque j'ai supprimé ce fichier, mongo se mettait à démarrer, puis, OK. Mon système avait eu des accidents désordonnés avant cela. [Fedora 14] 

3
user3704779

Tout cela se trouve dans votre message d'erreur - semble indiquer qu'un arrêt impropre a été détecté. Voir http://docs.mongodb.org/manual/tutorial/recover-data-following-unexpected-shutdown/ pour des informations détaillées.

Dans mon expérience personnelle, il est généralement utile d’exécuter mongod.exe avec --repair option pour réparer la base de données.

2
Roman Pekar

J'ai essayé de supprimer le fichier de verrouillage, mais la vraie raison pour laquelle cela m'est arrivé est parce que j'utilisais ~/data/db comme répertoire de données. Mongo a besoin d'un chemin absolu vers la base de données. Une fois que je l'ai changé en/home // data/db, j'étais en affaires.

1
Jordan Lapp

J'ai vérifié les autorisations, mais tout allait bien (mongod: mongod) . Étant donné que je travaille sur un projet volumineux et que, dans notre environnement de développement, un problème similaire existe: nous avions un script consommant tout l'espace disque disponible. messages d'erreur indiquant que mongod a besoin d'au moins 3,7 Go d'espace disque libre pour s'exécuter.

J'ai vérifié mon propre espace disque uniquement pour voir qu'il restait moins de 2 Go. Après avoir déplacé/effacé des données, je peux redémarrer Mongod avec succès.

J'espère que cela t'aides ;-)

1
4levels

Supprimez le fichier .lock du répertoire C:\mongodb\data\path, puis redémarrez le service mongodb.

0
Shrinivas Kalangutkar

Je ne peux pas encore voter/commenter, mais +1 pour supprimer manuellement le fichier de verrouillage haha. 

Mon espace de travail C9 s'est écrasé sur moi et a déclenché un arrêt inattendu. L'API conseille: https://docs.mongodb.com/manual/tutorial/recover-data-following-unexpected-shutdown/

.. mais la suppression des données/mongo.lock a fonctionné pour moi :). 

De plus, juste au cas où vous auriez un refus de connexion (ce qui m'est arrivé), exécuter la commande de réparation avant de supprimer le fichier de verrouillage pourrait résoudre votre problème (le mien l'a été). 

Sudo -u mongodb mongod --repair --dbpath/var/lib/mongodb /

0
Jesse