web-dev-qa-db-fra.com

pourquoi je ne peux pas commencer le mongodb

c'est 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
35
zjm1126

Le compte utilisateur qui démarre MongoDB doit avoir les privilèges write sur le répertoire /data/db/ ... vous pouvez le modifier comme ceci ...

_ {Cette commande changera le propriétaire du /data/db/ au compte d'utilisateur utilisé.} _

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

Si vous rencontrez toujours des problèmes lors du démarrage de MongoDB, vous devez supprimer /data/db/mongod.lock, puis exécuter la réparation de votre base de données ...

mongod --repair

En savoir plus sur la commande de réparation ici .

85
Justin Jenkins

Sudo l'appel à mongod ou modifiez les autorisations de /data/db/mongod.lock afin qu'il soit accessible en écriture pour vous.

14
Austin Taylor

J'ai résolu ce problème en faisant un chown sur mongodb, c'est à dire.

Sudo chown -R mongodb:mongodb /data

C'est parce que, quand tu fais 

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 t'aides.

11
Swathi

Assurez-vous qu'aucune instance de mongod n'est en cours d'exécution.

C'est ce qui a fonctionné pour moi. J'ai vérifié si une instance fonctionnait en arrière-plan au début en regardant dans le terminal de la manière suivante: ps aux | grep mongo

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

alors je l'ai tué: tuer 48358

et puis j'ai pu l'exécuter correctement.

5
user3604647

Ici, comment je l'ai résolu

  1. Après avoir supprimé le fichier de verrouillage, je l'ai réparé avec Sudo mongod --repair --config=/etc/mongodb.conf, Après cela, j'ai vérifié l'autorisation de mongod.lock avec ls -l /var/lib/mongodb/mongod.lock.
  2. il montrait que root est le propriétaire du fichier de verrouillage, je l'ai donc modifié pour revenir à mongodb en utilisant Sudo chown mongodb:mongodb /var/lib/mongodb/* 
  3. puis redémarrez le service mongodb en utilisant Sudo service mongodb restart
4
Sanjay Jain

Sur Mac OSX, Yosemite après l’installation standard avec Brew:

Sudo chown -R `id -u` /data/db

si cela ne démarre pas (vérifiez s'il n'y a pas de connexions suspendues et bloquantes):

lsof -i:27017

sort quelque chose comme:

COMMAND   PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
mongod  16948 andi    8u  IPv4 0x883a71bc9412939d      0t0  TCP *:27017 (LISTEN)

prenez la valeur de PID et exécutez:

kill -9 <PID>

maintenant, vous devriez pouvoir démarrer mongo server: mongod puis par exemple dans une fenêtre de console séparée, connectez-vous avec mongo

0
andilabs

Si vous souhaitez récupérer un membre d'un jeu de réplicas non, utilisez les méthodes décrites ci-dessus. Utilisez plutôt les procédures décrites dans ReSync-documentation de MongoDB

0
H6.