J'ai passé un certain temps à regarder cela, et il semble que le dossier pid et les autorisations de fichiers ne fonctionnent pas avec le démon par défaut.
La solution la plus simple que j'ai rencontrée est de désactiver le fichier pid en mettant simplement un # devant la ligne dans le fichier de configuration.
vi /etc/mongod.conf
trouvez la ligne qui dit pidfilepath=/var/run/mongodb/mongod.pid et modifiez-la en conséquence.
# pidfilepath=/var/run/mongodb/mongod.pid
Pour plus d'informations sur ce que le commentaire fait, vérifiez ici.http://docs.mongodb.org/manual/reference/configuration-options/#processManagement.pidFilePath
Si vous démarrez mongod en tant que service en utilisant :
démarrage du service sudo mongod
Assurez-vous que les répertoires définis pour logpath, dbpath et pidfilepath dans votre mongod.conf existent et appartiennent à mongod:mongod.
J'ai le même problème, je l'ai résolu temporairement, en désactivant SELinux, en redémarrant la machine, en éliminant mongod.lock :
#rm /var/lib/mongo/mongod.lock
En créant le fichier /var/run/mongodb/mongo.pid (comme mentionné dans le fichier de configuration /etc/mongod.conf) :
#mkdir /var/run/mongodb
#touch /var/run/mongodb/mongod.pid
et donnant 777 permissions :
#chmod 777 /var/run/mongodb/mongod.pid
et démarrer mongo :
#service mongod start
Mais le problème persiste après redémarrage de la machine. Le dossier et le fichier disparaissent.
Ce qui a fonctionné pour moi sur Fedora 20 :nous devons créer le répertoire temporaire à chaque démarrage, et cela est géré par systemd-tmpfiles. Alors, créez un fichier /lib/tmpfiles.d/mongodb.conf et mettez-y une ligne :
d /var/run/mongodb 0755 mongod mongod
Cela semble le gérer lors des redémarrages; si vous ne voulez pas redémarrer tout de suite, vous pouvez l'exécuter avec :
sudo systemd-tmpfiles --create mongodb.conf
(Voir les pages de manuel pour systemd-tmpfiles)