31 votes

pourquoi je ne peux pas démarrer le mongodb

Voici l'erreur :

(mysite)zjm1126@zjm1126-G41MT-S2:~$ /usr/local/mongodb/bin/mongod 
/usr/local/mongodb/bin/mongod --help for help and startup options
Wed Apr 27 10:02:41 [initandlisten] MongoDB starting : pid=2652 port=27017 dbpath=/data/db/ 32-bit 

** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
**       see http://blog.mongodb.org/post/137788967/32-bit-limitations
**       with --dur, the limit is lower

Wed Apr 27 10:02:41 [initandlisten] db version v1.8.1, pdfile version 4.5
Wed Apr 27 10:02:41 [initandlisten] git version: a429cd4f535b2499cc4130b06ff7c26f41c00f04
Wed Apr 27 10:02:41 [initandlisten] build sys 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_37
Wed Apr 27 10:02:41 [initandlisten] exception in initAndListen std::exception: Unable to create / open lock file for lockfilepath: /data/db/mongod.lock errno:13 Permission denied, terminating
Wed Apr 27 10:02:41 dbexit: 
Wed Apr 27 10:02:41 [initandlisten] shutdown: going to close listening sockets...
Wed Apr 27 10:02:41 [initandlisten] shutdown: going to flush diaglog...
Wed Apr 27 10:02:41 [initandlisten] shutdown: going to close sockets...
Wed Apr 27 10:02:41 [initandlisten] shutdown: waiting for fs preallocator...
Wed Apr 27 10:02:41 [initandlisten] shutdown: closing all files...
Wed Apr 27 10:02:41 closeAllFiles() finished
Wed Apr 27 10:02:41 [initandlisten] shutdown: removing fs lock...
Wed Apr 27 10:02:41 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
Wed Apr 27 10:02:41 dbexit: really exiting now

75voto

Justin Jenkins Points 10501

Le compte d'utilisateur qui démarre MongoDB doit disposer des éléments suivants privilèges d'écriture à la /data/db/ ... vous pouvez le modifier comme suit ...

Cette commande changera le propriétaire du /data/db/ au compte utilisateur utilisé.

$ sudo chown `id -u` /data/db
$ mongod 

Si vous rencontrez toujours des problèmes avec le démarrage de MongoDB, vous devez supprimer /data/db/mongod.lock et ensuite lancer la réparation de votre base de données ...

mongod --repair

En savoir plus sur la commande de réparation aquí .

11voto

Austin Taylor Points 3966

Soit sudo l'appel à mongod ou changer les permissions de /data/db/mongod.lock pour qu'il soit accessible en écriture par vous.

9voto

Swathi Points 96

J'ai résolu ce problème en faisant un chown sur mongodb ie.

sudo chown -R mongodb:mongodb /data

C'est parce que, lorsque vous faites

ls -lrth /data
drwxr-xr-x 2 mongodb mongodb  6 Jan  5 02:31 journal
-rwxr-xr-x 1 mongodb mongodb  0 Jan  5 02:31 mongod.lock
drwxr-xr-x 2 ubuntu  root    24 May  8 20:02 configdb

J'espère que cela vous aidera.

5voto

Assurez-vous que vous n'avez pas d'instance mongod en cours d'exécution.

C'est ce qui a marché pour moi. J'ai d'abord vérifié si une instance fonctionnait en arrière-plan en regardant dans le terminal comme ceci : ps aux | grep mongo

et j'ai vu qu'il y en avait : 48358 bla bla mongod

alors je l'ai tué : kill 48358

et ensuite j'ai pu l'exécuter sans problème.

4voto

Sanjay Jain Points 611

Voici comment je l'ai résolu

  1. Après avoir supprimé le fichier de verrouillage, je l'ai réparé en utilisant sudo mongod --repair --config=/etc/mongodb.conf , Après cela, j'ai vérifié la permission de mongod.lock en utilisant ls -l /var/lib/mongodb/mongod.lock
  2. il montrait que Root est le propriétaire du fichier verrouillé, alors je l'ai changé en mongodb en utilisant sudo chown mongodb:mongodb /var/lib/mongodb/*
  3. puis redémarrez le service mongodb en utilisant sudo service mongodb restart

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