182 votes

Impossible de se connecter au serveur 127.0.0.1:27017

J'obtiens l'erreur suivante :

alex@alex-K43U:/$ mongo
MongoDB shell version: 2.2.0
connecting to: test
Thu Oct 11 11:46:53 Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91
exception: connect failed
alex@alex-K43U:/$ 

Voici ce qui se passe lorsque j'essaie de démarrer mongodb :

* Starting database mongodb                                             [fail]

J'ai déjà essayé mongo --repair

J'ai fait chown et chmod pour var, lib, et data/db et log mongodb.

Je ne sais pas quoi faire d'autre. Avez-vous des suggestions ?

mongodb.log :

***** SERVER RESTARTED *****

Thu Oct 11 08:29:40 
Thu Oct 11 08:29:40 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Oct 11 08:29:40 
Thu Oct 11 08:29:41 [initandlisten] MongoDB starting : pid=1052 port=27017 dbpath=/var/lib/mongodb 32-bit host=alex-K43U
Thu Oct 11 08:29:41 [initandlisten] 
Thu Oct 11 08:29:41 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Thu Oct 11 08:29:41 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations
Thu Oct 11 08:29:41 [initandlisten] **       with --journal, the limit is lower
Thu Oct 11 08:29:41 [initandlisten] 
Thu Oct 11 08:29:41 [initandlisten] db version v2.2.0, pdfile version 4.5
Thu Oct 11 08:29:41 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Thu Oct 11 08:29:41 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Oct 11 08:29:41 [initandlisten] options: { config: "/etc/mongodb.conf", dbpath: "/var/lib/mongodb", logappend: "true", logpath: "/var/log/mongodb/mongodb.log" }
Thu Oct 11 08:29:41 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/var/lib/mongodb/journal"
************** 
Unclean shutdown detected.
Please visit http://dochub.mongodb.org/core/repair for recovery instructions.
*************
Thu Oct 11 08:29:41 [initandlisten] exception in initAndListen: 12596 old lock file, terminating
Thu Oct 11 08:29:41 dbexit: 
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close listening sockets...
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to flush diaglog...
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close sockets...
Thu Oct 11 08:29:41 [initandlisten] shutdown: waiting for fs preallocator...
Thu Oct 11 08:29:41 [initandlisten] shutdown: closing all files...
Thu Oct 11 08:29:41 [initandlisten] closeAllFiles() finished
Thu Oct 11 08:29:41 dbexit: really exiting now

EDIT :

J'ai enlevé le verrou puis fait une réparation mongod et j'ai eu cette erreur :

Thu Oct 11 12:05:37 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating

alors je l'ai fait avec sudo :

alex@alex-K43U:~$ sudo mongod --repair
Thu Oct 11 12:05:42 
Thu Oct 11 12:05:42 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Oct 11 12:05:42 
Thu Oct 11 12:05:42 [initandlisten] MongoDB starting : pid=5129 port=27017 dbpath=/data/db/ 32-bit host=alex-K43U
Thu Oct 11 12:05:42 [initandlisten] 
Thu Oct 11 12:05:42 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Thu Oct 11 12:05:42 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations
Thu Oct 11 12:05:42 [initandlisten] **       with --journal, the limit is lower
Thu Oct 11 12:05:42 [initandlisten] 
Thu Oct 11 12:05:42 [initandlisten] db version v2.2.0, pdfile version 4.5
Thu Oct 11 12:05:42 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Thu Oct 11 12:05:42 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Oct 11 12:05:42 [initandlisten] options: { repair: true }
Thu Oct 11 12:05:42 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/data/db/journal"
Thu Oct 11 12:05:42 [initandlisten] finished checking dbs
Thu Oct 11 12:05:42 dbexit: 
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close listening sockets...
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to flush diaglog...
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close sockets...
Thu Oct 11 12:05:42 [initandlisten] shutdown: waiting for fs preallocator...
Thu Oct 11 12:05:42 [initandlisten] shutdown: closing all files...
Thu Oct 11 12:05:42 [initandlisten] closeAllFiles() finished
Thu Oct 11 12:05:42 [initandlisten] shutdown: removing fs lock...
Thu Oct 11 12:05:42 dbexit: really exiting now

Mais j'ai toujours le même problème.

1 votes

Je pense que ce lien vous aidera stackoverflow.com/questions/9647561/ en changeant le chemin de la base de données de mongo

10 votes

sudo service mongod restart a fonctionné pour moi

175voto

Nanhe Kumar Points 2207
Step 1: Remove lock file.
sudo rm /var/lib/mongodb/mongod.lock

Step 2: Repair mongodb. 
sudo mongod --repair 

Step 3: start mongodb.
sudo start mongodb 
or
sudo service mongodb start

Step 4: Check status of mongodb.
sudo status mongodb 
or   
sudo service mongodb status

Step 5: Start mongo console.
mongo

2 votes

Bonjour Nanhe Kumnar, quel est le chemin initial dans le terminal. Devons-nous aller dans le dossier cd /usr/local/opt/mongodb/ ou un autre, je suis confronté au problème suivant Vijayvir-Singh:~ vijayvir$ sudo rm /var/lib/mongodb/mongod.lock rm : /var/lib/mongodb/mongod.lock : Aucun fichier ou répertoire de ce type Vijayvir-Singh:~ vijayvir$ sudo

1 votes

@vvss d'abord trouver le chemin du fichier. utiliser ceci. localiser mongod.lock

9 votes

Dans la version 2.4.8, il s'agit de /data/db/mongod.lock au lieu de /var/lib/mongodb/mongod.lock

90voto

eloone Points 754

Est-ce que tu as couru mongod avant d'exécuter mongo ?

J'ai suivi les instructions d'installation de mongodb à partir de http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/ et j'ai eu la même erreur que vous seulement lorsque j'ai exécuté mongo avant de lancer le processus mongo avec mongod . Je pensais que l'installation de mongodb le lancerait aussi mais il faut le lancer manuellement avec mongod avant de faire quoi que ce soit d'autre qui nécessite mongodb.

10 votes

C'était mon problème. Je suis surpris que cela ne soit pas précisé dès le départ dans la documentation "Getting Started With Mongo".

0 votes

Cela n'a vraiment aucun sens du point de vue de l'expérience utilisateur. mongo.exe devrait être celui qui démarre la BD.

39voto

Trott Points 16299

Le journal indique que mongodb se termine parce qu'il y a un vieux fichier de verrouillage.

Si vous n'utilisez pas et n'utilisiez pas la journalisation, supprimez le fichier de verrouillage, exécutez la réparation et redémarrez mongodb.

Si vous êtes ou étiez en train de fonctionner avec la journalisation activée, voir les documents pertinents de Mongo DB . Notez qu'ils disent : "Si vous utilisez la journalisation, vous ne devez pas effectuer de réparation pour retrouver un état cohérent". Donc si vous étiez en journalisation, la réparation peut avoir empiré les choses.

30 votes

C'est mauvais qu'une réparation puisse endommager des choses !

1 votes

Dans une situation où la journalisation est activée, que faire si je reçois très fréquemment une erreur de refus de connexion ?

13voto

潘博韜 Points 41

Essayez

sudo service mongodb start

Cela a résolu mon problème.

0 votes

Quelle est la différence entre sudo service mongod start y sudo service mongodb start

0 votes

Je ne suis pas sûr mais je suppose que mongodb est le nom du service, et mongod est le nom du fichier du programme.

8voto

msnfreaky Points 116

Vérifiez l'espace libre de votre système de fichiers et augmentez-le s'il est inférieur. Cela peut également empêcher le démarrage de mongo. Vérifiez le fichier /var/log/mongodb/mongodb.log.

ERROR: Insufficient free space for journal files
Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles

0 votes

Cela m'est arrivé et j'ai ajouté smallfiles=true au fichier /etc/mongod.conf

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