Impossible de se connecter au serveur 127.0.0.1:27017


160

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:/$ 

C'est ce qui se passe lorsque j'essaye de démarrer mongodb:

* Starting database mongodb                                             [fail]

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

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

Je ne sais pas quoi faire d'autre. Aucune suggestion?

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

ÉDITER:

J'ai supprimé le verrou, puis j'ai réparé mongod et j'ai obtenu 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

donc 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 toujours le même problème.


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

8
sudo service mongod restarttravaillé pour moi
Sudip Bhandari

Réponses:


32

Le journal indique que mongodb se termine car il existe un ancien fichier de verrouillage.

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

Si vous utilisez ou étiez en cours d'exécution avec la journalisation activée, consultez la documentation Mongo DB correspondante . Notez qu'ils disent "Si vous utilisez la journalisation, vous ne devez pas effectuer de réparation pour récupérer à un état cohérent." Donc, si vous étiez en train de journaliser, la réparation peut avoir aggravé les choses.


25
C'est dommage qu'une réparation puisse endommager les choses!
UpTheCreek

1
Dans une situation de journalisation activée, que faire si une erreur de connexion refusée est très fréquente?
Shashank

149
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 

1
salut Nanhe Kumnar quel est le chemin initial dans le terminal. Devrions-nous aller dans le dossier cd / usr / local / opt / mongodb / ou 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 $
Vijayvir Sing Pantlia

@vvss trouve d'abord le chemin du fichier. utilisez ceci. localiser mongod.lock
Nanhe Kumar

9
Dans la version 2.4.8, c'est au /data/db/mongod.locklieu de/var/lib/mongodb/mongod.lock
Loolooii

84

Avez-vous couru mongodavant de courir 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 uniquement lorsque j'ai couru mongoavant d'exécuter le processus mongo avec mongod. Je pensais qu'installer mongodb le lancerait également, mais vous devez le lancer manuellement avec mongodavant de faire quoi que ce soit qui nécessite mongodb.


10
C'était mon problème. Je suis surpris que cela ne soit pas clairement indiqué dans la documentation "Getting Started With Mongo".
jononomo

Cela n'a vraiment aucun sens du point de vue de l'expérience utilisateur. mongo.exedevrait être celui qui démarre la base de données.
Moshe Karmel

58

C'est parce que le processus mongod est en panne, vous devez exécuter les commandes ci-dessous afin de lancer le processus mongod:

~$ sudo service mongodb stop

~$ sudo rm /var/lib/mongodb/mongod.lock

~$ sudo mongod --repair --dbpath /var/lib/mongodb

~$ sudo mongod --fork --logpath /var/lib/mongodb/mongodb.log --dbpath /var/lib/mongodb

~$ sudo service mongodb start

J'espère que cela vous aide.


2
Problème résolu. Je vous remercie. J'ajouterais les commandes sudo service mongod stopet sudo service mongodb stopavant la première commande car certaines personnes pourraient toujours les faire fonctionner.
Georgi Georgiev

1
Cela m'a aidé à redémarrer le mongo. cependant je ne peux plus accéder à l'ancienne base de données. Pourriez-vous s'il vous plaît m'aider ici.
Ehsan

13

Essayer

sudo service mongodb start

Cela a résolu mon problème.


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

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

7

Vérifiez l'espace libre de votre système de fichiers et augmentez-le s'il est inférieur. Cela pourrait également empêcher le mongo de démarrer. 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

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

7

Essayez de courir mongodavant mongo.

sudo /usr/sbin/mongod sur mon openuse

Cela a résolu mon problème,


6

donc d'abord, vous devez supprimer le fichier mongod.lock par la commande ci-dessous

sudo rm /var/lib/mongodb/mongod.lock

puis redémarrez le service mongo en émettant la commande ci-dessous

sudo service mongod restart 

4

Vous pouvez vérifier avec netstat -anp | grep 27017pour voir si le port est utilisé par un autre processus.


étrange, j'ai ceci: alex @ alex-K43U: ~ $ netstat -anp | grep 27017 (Tous les processus n'ont pas pu être identifiés, les informations de processus n'appartenant pas ne seront pas affichées, vous devrez être root pour tout voir.)
alexchenco

2
C'est un résultat normal lors de l'exécution en tant qu'utilisateur non root, car netstat n'affichera que les processus que votre utilisateur est autorisé à voir.
Efren

vous pouvez utiliser sudo netstat -anp | grep 27017 pour contourner cet avertissement
Wiston Coronell

Celui-ci fonctionne pour moi, merci beaucoup. J'obtiens ceci quand j'ai exécuté le code donné unix 2 [] STREAM 31095 - /tmp/mongodb-27017.sock et j'ai supprimé le fichier .sock, maintenant tout va bien.
Abel

4

Dans Windows, exécutez cmd en tant qu'administrateur:

  1. Créer un répertoire:

    mkdir c: \ mongo \ data \ db

  2. Installer le service:

    mongod.exe --install --logpath c: \ mongo \ logs --logappend --bind_ip 127.0.0.1 --dbpath c: \ mongo \ data \ db --directoryperdb

  3. Démarrez MongoDB:

    net start MongoDB

4.Démarrez Mongo Shell:

c:\mongo\bin\mongo.exe

Cette solution fonctionne bien pour moi


3

Cela a fonctionné pour moi:

sudo rm /var/lib/mongodb/mongod.lock    
sudo service mongodb restart

3

Pour référence future, procédez comme suit pour éviter des erreurs similaires:

1.Téléchargez MondoDB https://www.mongodb.com/

2.Ouvrez un terminal et un CD dans votre dossier de téléchargement ou dans le dossier dans lequel vous avez enregistré votre téléchargement mondodb (assurez-vous d'extraire votre dossier mongodb avant de le télécharger)

cd Downloads

3.Déplacez mongodb vers votre chemin usr / local

sudo mv mongodb-osx-... /usr/local/mongodb

4.cd dans votre dossier local

cd /usr/local/mongodb

5. créer un nouveau répertoire

sudo mkdir -p /data/db

6.cd dans le nouveau répertoire que vous venez de créer ci-dessus

cd /data/db

7.Donner des permis mongo

sudo chown YourMacUserName /data/db

8.Ensuite, allez / ouvrez votre .bash_profile

Pour ce faire, procédez comme suit:

Dans votre nouveau terminal

1 . cd 2 .pwd 3 .ls -l

Vérifiez si le .bash_profile apparaît dans votre liste de fichiers sur votre terminal

sinon créez le -bash_profile

Création de .bash_profile:

Dans votre terminal

touchez .bash_profile

// ignorez cette étape si vous avez déjà un .bash_profile

Étape 8:

Suivant dans votre terminal:

open .bash_profile

Et dans votre fichier bash qui s'ouvre, ajoutez ce qui suit:

MONGO_PATH=/usr/local/mongodb
export PATH=$PATH:$MONGO_PATH/bin

Et puis enregistrez . (Fichier Enregistrer ou commande S / CMD + S)

Étape 9: de retour dans votre terminal :

source .bash_profile

Maintenant, ouvrez deux terminaux. L'un pour votre démon mondo l'autre pour votre mongo .

Terminal 1: dans votre type de terminal: mongod

mongodb

Production: Terminal de Mongod

Terminal 2:

mongo

Production: Terminal de Mongo

Assurez-vous également de ne pas faire l'erreur de frappe suivante lors du démarrage de votre mongod dans votre terminal: Ceci est incorrect

mongo d

donne l' erreur suivante : Échec de la connexion à 127.0.0.1:27017, dans (vérification du socket pour une erreur après l'interrogation), raison: connexion refusée

C'est correct:

mongod

(Il ne devrait y avoir aucun espace entre les mots mongo et d .. mondod

Enfin, gardez toujours à l'esprit que vous devez exécuter mondod avant d'exécuter mongo sur vos terminaux .


2

J'ai suivi le document sur http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/ .

Après avoir configuré et redémarré, j'ai exécuté sudo service mongod startet obtenu ... [FAILED].

Enfin, j'ai découvert que cela mongodavait commencé. Je pense que l'a yum installajouté au démarrage automatique.

Pour vérifier si votre mongodest en cours d' exécution: service mongod status.

J'espère que cela peut aider quelqu'un a le même problème.


2

Après de fréquentes tentatives, j'ai finalement réussi à résoudre le problème ...

Step 1: ps aux | grep mongo
Step 2: sudo rm /var/lib/mongodb/mongod.lock
Step 3: sudo mongod --repair
Step 4: mongo

2

Cette erreur peut être causée par le paramètre IP de liaison de MongoDB. Vous pouvez vérifier le fichier de configuration de MongoDB en

$ sudo vi /etc/mongodb.conf

Dans mon cas, l'adresse IP de liaison est définie sur l'adresse intranet du serveur, comme suit:

bind_ip = 10.10.1.14 
#port = 27017

J'ai donc donné à mongo un paramètre IP pour se connecter au shell par type:

$ mongo 10.10.1.14

N'oubliez pas de redémarrer le service mongodb si vous avez changé la configuration.


2

J'ai la version 3.2.1 de mongo et j'ai dû supprimer le fichier de verrouillage /data/db/et après cela, j'ai couru mongodet cela a commencé avec succès.

>rm /data/db/mongod.lock
>mongod


1

Après avoir supprimé mongod.lock qui se trouvait dans le répertoire de données de mon système d'exploitation Windows, il affichait toujours le même message d'erreur. J'ai dû exécuter mongod avec --dbpath pour que la commande mongo s'exécute sans erreur.


1

Bien que les réponses soient reçues, je souhaiterais discuter des erreurs de réseau dans MongoDB.

Erreurs réseau MongoDB

Définir les problèmes d'écriture sécurisée n'est pas la méthode de preuve complète pour nous assurer que nous sommes en sécurité. Supposons que w=1& j=truesoient définis, que faire si l'accusé de réception d'écriture n'a pas été reçu du serveur? Eh bien, il est probable que cela ne s'est pas produit, mais cela aurait pu arriver. La raison pour laquelle cela a pu se produire est qu'il y a des erreurs de réseau - il y a des raisons pour lesquelles nous ne pouvons pas recevoir de réponse affirmative. Ainsi, nous pouvons envoyer la demande depuis l'application via un pilote de langue de choix. mongodpeut le terminer avec succès et puis il pourrait y avoir une réinitialisation TCP, et le réseau peut en fait être réinitialisé d'une manière que nous ne recevons jamais de réponse. Ainsi, nous pourrions obtenir une erreur et sur l'erreur, nous pourrions supposer que nous avons eu une erreur. Cela ne s'est pas produit, mais cela peut arriver.

Pour un insert, il est possible de s'en prémunir. C'est possible parce que si nous laissons le pilote créer le _idet que nous faisons une insertion - alors nous pourrions le faire plusieurs fois et ce serait un mal. Parce que si nous faisons cette 1ère fois et que nous obtenons une erreur et que nous ne savons pas si cette insertion s'est terminée ou non parce que c'est une erreur de réseau, alors nous pourrions simplement le refaire. Et à condition que nous le répétions, tyr pour l'exécuter avec l'exact _id. Le pire des cas est que nous obtiendrons une erreur de clé en double lorsque nous essayons de l'insérer.

Cependant, une mise à jour est l'endroit où le problème se produit. Surtout, la mise à jour qui n'est pas un élément puissant, qui comprenait par exemple une $inkcommande. Donc, nous disons à la base de données d'incrémenter un certain champ. Eh bien dans ce cas, si nous obtenons une erreur réseau et que nous ne savons pas si la mise à jour a eu lieu ou non. Maintenant, peut-être que nous en savons suffisamment sur les valeurs pour vérifier avec eux que la mise à jour a eu lieu, ce qui est bien. Mais si nous ne connaissons pas la valeur de départ dans la base de données pour ce champ, il ne nous est pas possible de savoir si cela s'est produit ou non en cas d'erreur réseau. Ce genre de problèmes est extrêmement rare avec un bon réseau.

Et si nous devons vraiment l'éviter à tout prix, nous devons activer toutes nos mises à jour en insertions, en lisant la valeur totale du document hors de la base de données, puis en le supprimant potentiellement et en l'insérant à nouveau ou simplement en l'insérant un nouveau.

Les raisons pour lesquelles une application peut recevoir une erreur même si l'écriture a réussi:

  • La connexion TCP réseau entre l'application et le serveur a été réinitialisée après que le serveur a reçu une écriture mais avant qu'une réponse puisse être envoyée.
  • Le MongoDBserveur s'arrête entre la réception de l'écriture et sa réponse.
  • Le réseau échoue entre le moment de l'écriture et le moment où le client reçoit une réponse à l'écriture.

1

Cela fonctionne pour moi pour arrêter l'utilisation de mongodb:

use admin
db.shutdownServer()

Et pour redémarrer:

sudo service mongod restart


0

L'ajout du bac à PATH dans les variables d'environnement a aidé.

GOTO Installation Path et copiez le ../bin dans les variables PATH dans les variables d'environnement sous Windows


0

tapez windows + r et entrez ce qui suit

services.msc

démarrer MongoDB

maintenant tapez "mongo" dans cmd dans le chemin respectif où le mongo.exe est présent, il commencera à fonctionner.


0

1.Créez un nouveau dossier dans le lecteur D D: / data / db

2.Ouvrez le terminal sur D: / data / db

3.Tapez mongod et entrez.

4.Tapez mongo et entrez.

et votre mongodb a strated ............



0

simple Run Two félicite

sudo rm /var/lib/mongodb/mongod.lock
sudo mongod --repair 



0

Err: Impossible de se connecter au serveur 127.0.0.1:27017

C'est la solution pour les utilisateurs de WINDOWS, entrez le code ici 1. Créez un répertoire:

mkdir c:\mongo\data\db
  1. Service d'installation: accédez d'abord à votre répertoire bin dans les fichiers programmes de MongoDB avec cd

mongod.exe --install --logpath

  1. Démarrez MongoDB:

    net start MongoDB

4.Démarrez Mongo Shell:

`c:\mongo\bin\mongo.exe` or

aller jusqu'au bac et entrer mongo

Remarque: ouvrir le terminal en mode administrateur


0

Ubuntu 18.04LTS: Le problème survient lorsque j'ai complètement désinstallé ma version précédente et installé 4.2.6

Après des heures de recherche sur Google, j'ai résolu un autre problème

MongoDB échoue à démarrer - *** abandon après l'échec de fassert ()

J'étais désespéré à propos du problème de ne pas pouvoir me connecter au serveur , car tout semble correct.

Enfin, j'ai décidé de redémarrer le système d'exploitation et devinez quoi ... BINGO

sudo mongo // works like a charm
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.