Je viens d'installer mongo 3. Et j'ai essayé de l'exécuter en tant que serveur Windows mais j'ai reçu une erreur
The MongoDB 3.0 service terminated with the following service-specific error:
Cannot create another system semaphore.
Impossible de trouver des informations sur cette erreur et mongodb.
Vérifiez les journaux de mongodb. Dans mon cas, mongodb n'a pas pu trouver le répertoire de mongod.cfg
Dans mon cas, il est apparu qu'il s'agissait d'un problème mongod.lock après un arrêt inattendu.
Detected unclean shutdown - E:\MongoDb\Databases\mongod.lock is not empty.
J'ai supprimé E:\MongoDb\Databases\mongod.lock et mongo a commencé avec succès.
Après avoir installé .msi sous Windows 10 dans Program Files, j'ai créé le service pour un autre emplacement de données, C:\Mongo\Data\DB.
Le service s’est installé correctement mais n’a pas commencé avec l’erreur "Impossible de créer un autre sémaphore système" car:
Je n'avais pas créé la structure de dossier requise. Simple comme ça - oh!
J'espère que ça aide quelqu'un.
Cela m'est arrivé plusieurs fois parce que mon Mac est tombé en panne, ce qui a entraîné un arrêt impur de Parallels et de mon instance Mongo. mongod.lock n'était pas vide.
C'était sur un serveur de développement, donc je n'avais pas de sauvegardes. J'ai pu réparer en utilisant
mongod --repair --repairpath <path to your mongo data>
Plus d'instructions ici
J'ai eu le même problème et dans mon cas, la configuration était fausse. Cette erreur de l'observateur d'événements n'est pas très utile et est source de confusion, alors tout le monde devrait d'abord consulter les journaux mongo.
Vérifiez également les autorisations pour dbpath et logpath. Dans mon cas, j'avais configuré Mongo comme un service fonctionnant en tant que service réseau, mais je n'avais pas donné à ce service accès en écriture à ces répertoires.
Au cas où cela aiderait quelqu'un d'autre, c'est que j'avais démarré manuellement mongod.exe dans une fenêtre d'invite de commande afin que le service Windows ne puisse pas exécuter mongod.exe sur le même port déjà utilisé. Doh!
Dans Windows :
Par exemple, la version 3.6 de mongoDB est installée et le chemin d’installation de MongoDB est "D:\Program Files\MongoDB".
Créez le dossier D:\mongodb\logs
, puis créez le fichier mongodb.log
dans ce dossier.
Exécutez cmd.exe en tant que administrateur ,
D:\Program Files\MongoDB\Server\3.6\bin>taskkill /F /IM mongod.exe
D:\Program Files\MongoDB\Server\3.6\bin>mongod.exe --logpath D:\mongodb\logs\mongodb.log --logappend --dbpath D:\mongodb\data --directoryperdb --serviceName MongoDB --remove
D:\Program Files\MongoDB\Server\3.6\bin>mongod --logpath "D:\mongodb\logs\mongodb.log" --logappend --dbpath "D:\mongodb\data" --directoryperdb --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install
Supprimez ces deux fichiers mongod.lock
et storage.bson
sous le dossier "D:\mongodb\data".
Puis tapez net start MongoDB
dans la cmd en utilisant le privilège d’administrateur, le problème sera résolu.
Espace insuffisant sur le disque C: où MongoDB a été installé. Après avoir créé de l’espace, mongod.exe a démarré avec succès.
Dans mon cas, une autre instance de MongoDB était en cours d'exécution dans la commande Invite sur le même port.
Pour moi, lors d’une nouvelle installation de MongoDB v4.0.3 sous Windows 10 Pro, l’installation n’a pas pu démarrer le service Mongo à la fin.
Essayer de démarrer mongod à partir de la commande Invite, a indiqué la bonne configuration mongodb.cfg
, m'a donné l'erreur:
Option non reconnue: mp
J'ai ouvert la configuration et recherché "mp", pour trouver les 2 dernières lignes du fichier:
#snmp:
mp:
J'ai jeté un # devant cette dernière ligne et j'ai réessayé, et le service a bien commencé.
¯\_ (ツ) _/¯