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
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 .
Sudo
l'appel à mongod
ou modifiez les autorisations de /data/db/mongod.lock
afin qu'il soit accessible en écriture pour vous.
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.
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.
Ici, comment je l'ai résolu
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
.Sudo chown mongodb:mongodb /var/lib/mongodb/*
Sudo service mongodb restart
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
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 .