mongo - impossible de se connecter au serveur 127.0.0.1:27017

164

Je viens de riak et redis où je n'ai jamais eu de problème avec le démarrage de ces services ou l'interaction.

C'est un problème omniprésent chez mongo et je suis plutôt ignorant. Le redémarrage n'aide pas.Je suis nouveau sur Mongo.

mongo
MongoDB shell version: 2.2.1
connecting to: test
Fri Nov  9 16:44:06 Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91
exception: connect failed

C'est ce que je vois dans les journaux.

 now open)
Fri Nov  9 16:44:34 [conn47] end connection 10.29.16.208:5306 (1 connection now open)
Fri Nov  9 16:45:04 [initandlisten] connection accepted from 10.29.16.208:5307 #48 (2 connections now open)
Fri Nov  9 16:45:04 [conn48] end connection 10.29.16.208:5307 (1 connection now open)
Fri Nov  9 16:45:04 [initandlisten] connection accepted from 10.29.16.208:5308 #49 (2 connections now open)
Fri Nov  9 16:45:04 [conn49] end connection 10.29.16.208:5308 (1 connection now open)
Fri Nov  9 16:45:34 [initandlisten] connection accepted from 10.29.16.208:5316 #50 (2 connections now open)
Fri Nov  9 16:45:34 [conn50] end connection 10.29.16.208:5316 (1 connection now open)
Fri Nov  9 16:45:34 [initandlisten] connection accepted from 10.29.16.208:5317 #51 (2 connections now open)
Fri Nov  9 16:45:34 [conn51] end connection 10.29.16.208:5317 (1 connection now open)
Fri Nov  9 16:46:04 [initandlisten] connection accepted from 10.29.16.208:5320 #52 (2 connections now open)
Fri Nov  9 16:46:04 [conn52] end connection 10.29.16.208:5320 (1 connection now open)
Fri Nov  9 16:46:04 [initandlisten] connection accepted from 10.29.16.208:5321 #53 (2 connections now open)
Fri Nov  9 16:46:04 [conn53] end connection 10.29.16.208:5321 (1 conn
Tampa
la source
2
Comme l'OMI cela n'a rien à voir avec la programmation en soi, je vous recommande de poser cette question sur serverfault.com .
cimnine
2
J'étais également confronté au même problème. Son cus mongo Impossible de créer un dossier dans C: / data / db J'ai suivi ce tut mkyong.com/mongodb/how-to-install-mongodb-on-windows
STEEL
J'ai rencontré la même erreur lors de l'utilisation de l'ordinateur portable de mon entreprise et de l'installation de MongoDB sur C :. En raison des privilèges administratifs et du fait que je suis invité avec mon nom d'utilisateur et mon mot de passe d'administrateur chaque fois que j'installe quelque chose ou que je modifie quoi que ce soit dans C :, c'était la raison pour laquelle je ne pouvais pas faire fonctionner mongodb. Après l'avoir installé sur D :, tout a bien fonctionné.
paranza du

Réponses:

47

Cette erreur est ce que vous verriez si le shell mongo ne pouvait pas parler au serveur mongod.

Cela peut être dû au fait que l'adresse était incorrecte (hôte ou IP) ou qu'elle ne fonctionnait pas. Une chose à noter est que la trace de journal fournie ne couvre pas le "Fri Nov 9 16:44:06" de votre mongo timestamp.

Peut tu:

  1. Fournissez les arguments de ligne de commande (le cas échéant) utilisés pour démarrer votre processus mongod
  2. Fournir l'activité du fichier journal depuis le démarrage de mongod ainsi que les journaux pendant la tentative de démarrage de mongo shell?
  3. Confirmer que votre processus mongod est lancé sur la même machine que le shell mongo?
Jenna
la source
283

Normalement, cela est dû au fait que vous n'avez pas lancé le processus mongod avant d'essayer de démarrer le shell mongo.

Démarrer le serveur mongod

mongod

Ouvrez une autre fenêtre de terminal

Démarrer mongo shell

mongo
Ravi Hamsa
la source
3
Ce cas a fonctionné pour moi, j'ai dû faire ~> sudo mongod --dbpath / dbpathlocation, puis j'ai ouvert le nouveau terminal pour exécuter mongo ...
Saji
5
ce qui a fonctionné pour moi sur macOS Sierra était sudo mongodet puismongo
Amin Jafari
J'ai dû créer un répertoire / data / db avant d'exécuter mongod
College Student
Je ne peux pas croire que tout ce que j'avais à faire était de courir mongoden arrière-plan ou dans un autre shell avant de courir mongo. Criez à Ravi Hamsa !.
Kareem Jeiroudi
A travaillé pour moi comme du charme!
Sobhit Sharma
86

Résolu.

Ce problème pourrait être résolu par les 4 étapes mentionnées ci-dessous

1) Supprimer le fichier .lock

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

2) réparer le mongodb

mongod -–repair

3) Démarrez le serveur mongod

sudo service mongod start 

4) Démarrez le client mongo

mongo

Pour plus de détails, consultez http://shakthydoss.com/error-couldnt-connect-to-server-127-0-0-127017-srcmongoshellmongo-js-exception-connect-failed/

http://shakthydoss.com/technical/error-couldnt-connect-to-server-127-0-0-127017-srcmongoshellmongo-js-exception-connect-failed/

shakthydoss
la source
4
Je me demande simplement quel est le fichier /var/lib/mongodb/mongod.lock et qu'est-ce qui ne va pas?
ozn
L'élément 2 dans Ubuntu 18.04 estmongod --repair
Aline Matos
43

Cette méthode ne fonctionne que si vous souhaitez réparer vos fichiers de données sans conserver les fichiers d'origine

Pour trouver où réside votre chemin dbpath - vim /etc/mongodb.conf

vérifier l'option dbpath =

(J'ai dbpath = / var / lib / mongodb)

Par défaut: / data / db /

Les emplacements typiques incluent: / srv / mongodb, / var / lib / mongodb ou / opt / mongodb.

Remplacez / var / lib / mongodb par votre dbpath

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

(Assurez-vous que vous laissez votre terminal en cours d'exécution dans lequel vous avez exécuté au-dessus des lignes, n'appuyez pas sur 'Ctrl + C' ou quittez-le.) Tapez la commande pour démarrer mongo maintenant dans une autre fenêtre.

J'espère que cela fonctionne pour toi ! pour ceux qui veulent réparer vos fichiers de données tout en préservant les fichiers originaux mongo recover

pauvre
la source
1
travailler sur ubuntu. --journal a résolu mon problème. Que fait-il vraiment? à quoi sert --journal?
grep
A travaillé pour moi sur fedora 20. Pouvons-nous maintenant fermer la première fenêtre du terminal?
Khayam Gondal
27

MAC OS

Vérifier l'état

brew services list

Quelque chose comme:

Name    Status  User Plist
mongodb stopped  

démarrer

brew services start mongodb

Essayez à nouveau

mongo ou mongo --port 27017

William Hu
la source
1
Cela m'a aidé à +1.
Sandeep
Cela n'a pas fonctionné pour moi. Cela fait une heure que je lutte avec ce MongoDB. Sensationnel!!!
Glenn
cela m'a aidé, merci ..
Iam ByeBlogs
15

Dans mon cas:

J'ouvre d'abord le fichier de configuration

sudo vi /etc/mongodb.conf

Commentez l'IP et le port comme ceci

#bind_ip = 127.0.0.1
#port = 27017

Puis redémarrez mongodb

sudo service mongodb restart
sudo service mongod restart

Enfin, c'est du travail: D

finn@Finn ~ $ mongo
MongoDB shell version: 2.4.9
connecting to: test
> exit
Finlandais
la source
La suppression de l'ip / port n'a pas fonctionné pour moi. Cela a en fait encore plus cassé le serveur. Le service a refusé de redémarrer ...
Cerin
1
Soyez prudent avec bind_ip. Si vous commentez cela, cela permettra des connexions à distance à votre base de données, ce qui est évidemment une mauvaise idée à moins que vous n'ayez une configuration de sécurité et d'authentification. Je pense que MongoDB n'a pas d'utilisateurs ni de mot de passe par défaut, vous devez donc en être conscient.
agm1984
Travaille pour moi aussi, mais je ne sais pas sur la sécurité après le commentaire de @ agm1984, je vais juste l'utiliser en mode développement et après j'utiliserai l'Atlas Cloud de Mongodb, plus sécurisé dans mon cas je pense (avec mon pauvre serveur compétences: D)
Adrien V
1
@AdrienV bien sûr, c'est risqué si vous supprimez la liaison IP locale car elle permettra d'accéder à partir d'Internet. C'est juste une solution pour le serveur de développement.
Finn
bind_ip a été défini sur une adresse IP inconnue supplémentaire. La suppression a résolu l'erreur / db / data ... ufff
zevero
14

Assurez-vous que votre mongo fonctionne. J'ai résolu ce problème en essayant de réparer le mongodb, là j'ai trouvé que le répertoire requis pour que la base de données s'exécute n'était pas créé. Il montre cette erreur

Tapez:, mongodil affichera l'erreur

exception in initAndListen: 29 Data directory /data/db not found., terminating

Une erreur s'est produite car dbpath /data/db/(configuration par défaut) n'existe pas. Vous devez créer un dossier de données et définir une autorisation pour celui-ci.

Ensuite, je crée un dossier sur mon système par la commande

sudo mkdir -p / data / db / et sudo chown id -u/ data / db

puis je lance à nouveau le mongo et cela a fonctionné.

Bipul Chandra Dev Nath
la source
14

Un peu trop tard avec la réponse mais j'ai rencontré le même problème

Voici les étapes qui m'ont aidé.

  1. Accédez à C: \
  2. Créer un dossier "data"
  3. Dans "data", créez le dossier "db"
  4. terminal ouvert (CMD) -> aller à EX: " c:\MongoDB\Server\3.4\bin"
  5. tapez mongod => cela démarrera le serveur mongo (laissez-le ouvert)

Exécuter en utilisant une GUI, EX "robomongo"

Ou

ouvrir un nouveau terminal (CMD) -> aller à EX: " c:\MongoDB\Server\3.4\bin" tapez la commande "mongo"

Metin Atalay
la source
12

Je suis un utilisateur Windows et j'ai installé MongoDB en novembre 2018 et je ne voulais pas configurer les répertoires data / db. Mais après quelques jours, lorsque j'ouvre, j'ai reçu un message d'erreur:

MongoDB shell version v4.0.4
connecting to: mongodb://127.0.0.1:27017
2018-12-05T20:42:40.108+0530 E QUERY    [js] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: No connection could be made because the target machine actively refused it. :
connect@src/mongo/shell/mongo.js:257:13
@(connect):1:6
exception: connect failed

Ensuite, j'ai essayé de réparer en utilisant toutes les réponses ci-dessus et cela n'a pas fonctionné. Quand j'ai essayé de courir Mongod, il a dit

MongoDB starting : pid=12220 port=27017 dbpath=C:\data\db\ 64-bit host=bla

J'ai essayé de changer le chemin de la base de données (vers les fichiers du programme) via le système de fichiers et également en utilisant cmd, mais cela n'a pas fonctionné.

La solution qui a fonctionné pour moi est:

Ouverture du Gestionnaire des tâches ( ctrl + shift + esc) -> onglet Services et il y avait une ligne MongoDB avec le statut arrêté . Ensuite, j'ai fait un clic droit et cliqué sur Démarrer et tout fonctionne parfaitement :) .

Blasanka
la source
6

Si toute la solution ci-dessus ne fonctionne pas: allez dans service ( start>search>services) et démarrez le service mongodb. Ensuite, dans une invite cmd, après être allé dans la corbeille, tapez:/>mongo

Khalid
la source
5

Pour nous connecter avec mongo, nous devons d'abord démarrer les services «mongod». la sortie suivante que vous pouvez voir:

$ mongod
2017-03-05T00:31:39.055+0530 I CONTROL  [initandlisten] MongoDB starting : pid=1481 port=27017 dbpath=/data/db 64-bit host=Prabhu-Nandans-Mac.local
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] db version v3.4.2
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] git version: 3f76e40c105fc223b3e5aac3e20dcd026b83b38b
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2k  26 Jan 2017
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] allocator: system
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] modules: none
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] build environment:
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten]     distarch: x86_64
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten]     target_arch: x86_64
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] options: {}
2017-03-05T00:31:39.056+0530 W -        [initandlisten] Detected unclean shutdown - /data/db/mongod.lock is not empty.
2017-03-05T00:31:39.057+0530 I -        [initandlisten] Detected data files in /data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2017-03-05T00:31:39.057+0530 W STORAGE  [initandlisten] Recovering data from the last clean checkpoint.
2017-03-05T00:31:39.057+0530 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=3584M,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] 
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] 
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] 
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
2017-03-05T00:31:39.643+0530 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2017-03-05T00:31:39.643+0530 I NETWORK  [thread1] waiting for connections on port 27017
2017-03-05T00:31:40.008+0530 I FTDC     [ftdc] Unclean full-time diagnostic data capture shutdown detected, found interim file, some metrics may have been lost. OK
2017-03-05T00:32:03.832+0530 I NETWORK  [thread1] connection accepted from 127.0.0.1:49806 #1 (1 connection now open)
2017-03-05T00:32:03.833+0530 I NETWORK  [conn1] received client metadata from 127.0.0.1:49806 conn1: { application: { name: "MongoDB Shell" }, driver: { name: "MongoDB Internal Client", version: "3.4.2" }, os: { type: "Darwin", name: "Mac OS X", architecture: "x86_64", version: "16.4.0" } }
2017-03-05T00:32:08.376+0530 I -        [conn1] end connection 127.0.0.1:49806 (1 connection now open)

Après cela, ouvrez un autre terminal et tapez simplement «mongo».

Voici la sortie que vous pouvez voir:

$ mongo
MongoDB shell version v3.4.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.2

Votre problème est résolu :)

Prabhu Nandan Kumar
la source
4

J'ai aussi le même problème que j'ai été corrigé par ces deux lignes de code. J'espère que ça aide

systemctl start mongod
systemctl enable mongod
Bahodir Boydedayev
la source
Correction de mon problème!
S.M_Emamian le
3

Je fais face au même problème après avoir beaucoup cherché, je résous cela en suivant:

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
Rohit Gaidhane
la source
cela a fonctionné! mais c'est temporaire, lorsque je redémarre mon système, il ne s'est plus exécuté
Predator X
2

Vous pouvez essayer avec la commande suivante:

sudo service mongod start

shivam kumar chaturvedi
la source
2

Cela se passait avec moi aujourd'hui et je l'ai résolu de la manière suivante.

Machine: J'utilise une machine Windows 10 et j'ai téléchargé la dernière édition de MongoDB - Community.

Donc, le problème était que je n'avais pas C:\data\dbcréé.

Sans créer C:\data\db, j'ai ouvert le terminal CMD et démarré la base de données en utilisant la mongodcommande au terminal

C: \ YourInstallationPath \ bin> mongod

Et quand j'ai lancé le mongocommandement, j'ai eu le problème.

Twist, j'ai créé les dossiers nécessaires mais je recevais toujours le problème. Et c'est parce que le serveur mongo fonctionnait déjà. Pour résoudre ce problème, j'ai relancé la mongodcommande, et elle a été automatiquement référencée C:\data\db.

D'autres utilisateurs ont suggéré d'ajouter C:\data\dbmais n'ont pas parlé de réexécuter mongod, ce qui a exactement résolu mon problème.

Amnesh Goel
la source
2

J'ai eu le même problème pour connecter mongodb après l'installation en utilisant brew sur macOS.

Le problème était aussi, mongod.lockmais avant j'avais installé mongodb 3.6 et le répertoire de base de données était /usr/local/var/mongodbet il avait d'anciens fichiers etmongod.lock

Simple, j'ai déplacé mes anciens fichiers de base de données dans un dossier différent et tout supprimé de /usr/local/var/mongodb

Puis redémarré:

brew services restart mongodb

Et ça marche bien maintenant.

Mandeep Gill
la source
2

dans mon cas dans windows et ubuntu, j'avais besoin de créer /data/db dossier à la racine. Dans ubuntu, j'avais besoin d'une option supplémentaire; pour donner des autorisations pour le répertoire.

les fenêtres

mkdir c:/data/db

ubuntu:

sudo mkdir -p /data/db
sudo chmod 700 /data/db

puis courir

sudo service mongod start

vérifier

sudo service mongod status

puis exécutez

mongo
Віталій Мартиненко
la source
2

J'obtenais cette erreur sur ubuntu mais vous pouvez essayer avec la commande suivante:

sudo service mongod start
Rahul
la source
1

Une autre solution qui a résolu cette même erreur pour moi, bien que celle-ci ne soit possible que si vous accédez à mongo (localement) via une connexion SSH via une machine virtuelle (du moins c'est ma configuration), et peut être un problème de variable d'environnement spécifique à Linux:

export LC_ALL=C

De plus, j'ai eu plus de succès en exécutant mongo en tant que service démon qu'avec le démarrage du service sudo, je crois comprendre que cela utilise des arguments de ligne de commande plutôt que le fichier de configuration, il s'agit donc probablement d'un problème avec mon fichier de configuration:

mongod --fork --logpath /var/log/mongodb.log --auth --port 27017 --dbpath /var/lib/mongodb/admin
édencorbine
la source
1

Créez le dossier C: data / db s'il n'existe pas déjà sur votre ordinateur. Il s'avère que MongoDB nécessite l'existence de cette structure de dossiers «data / db» pour s'exécuter. J'espère que ça aidera quelqu'un.

Amin Balogun
la source
1

La cause par moi était l'espace - exécutez ceci dans la console:

df -h

ou plus précisément:

du -hs /var/lib/mongodb/ 

pour vérifier l'utilisation du disque. Si c'est ~ 99%, nettoyez simplement de l'espace et réessayez!

tsveti_iko
la source
1

Tout d'abord, allez à c:\mongodb\bin>pour activer mongoDB, si vous voyez dans la console que mongo écoute sur le port 27017, c'est OK Sinon, fermez la console et créez un dossier c:\data\dbet redémarrez mongod

Monte Cristo
la source
1

si toute la solution ci-dessus ne fonctionne pas, peut-être que cela pourrait vous aider. Quelque part sur la ligne, vous avez peut-être établi une connexion à votre base de données mongodb locale via des boîtes vagabondes.

  1. vagrant puis ssh dans votre machine vagabonde dans laquelle vous avez établi une connexion avec mongodb (vagrant ssh vagrant_box_name)
  2. commentez la ligne bind_ip de /etc/mongod.conf en utilisant # (sudo nano /etc/mongod.conf)
  3. redémarrez votre service démon mongodb (service sudo redémarrage mongod) voila ...
Ashwin J Chhetri
la source
1

Démarrez le service monogdb en utilisant

sudo service mongod start 

puis à partir de la nouvelle fenêtre ou du terminal, démarrez le client mongo en utilisant

mongo
MILLION GASHAW
la source
0

Supprimez le fichier mongod.lock. Et lancez "mongod -repair". désinstaller / réinstaller le service mongod a résolu ce problème pour moi.

Merci.

Tonneau
la source
0

Enfin, j'ai compris cela de manière simple.

Ouvrez le terminal et allez à l'emplacement mongodb. Dans mon cas c'est

e:\mongodb\bin> 

et tapez la commande suivante et appuyez sur Entrée.

mongod --config e:\mongodb\mongo.config

Ouvrez un autre terminal et démarrez le mongodb en utilisant

mongo.exe

C'est tout ... vous pouvez utiliser mongo

Santhosh Kumar
la source
0

C'est une vieille question, mais, en tant que débutant, j'ai pensé que j'ajouterais que (en utilisant Webstorm) vous devez cliquer sur Mongo Explorer (onglet à l'extrême droite de votre fenêtre). De là:

-Cliquez sur les paramètres. -Cliquez sur le bouton Parcourir (ressemble à un bouton avec "..." dessus). -Allez dans Program Files> MongoDB> Server> 3.4> bin> mongo.exe (votre version peut être différente de 3.4) -Après cela, cliquez sur le signe plus vert à droite. Une fenêtre s'ouvrira -Entrez un nom dans l'emplacement "Label". -Cliquez sur Appliquer.

Vous devriez maintenant être connecté. Entrer "mongod" dans le terminal ne suffit pas. Vous devez également suivre les étapes ci-dessus.

Mes excuses à ceux d'entre vous qui n'utilisent pas Webstorm! Je ne suis pas sûr des étapes utilisant d'autres IDE.

David Mitchell
la source
0

si vous installez par brew (sur osx), lancez d'abord sudo mkdir /data/db mondoDB Daemon en tapant mongod(laissez-le ouvert), puis exécutez mongo en tapant le mongonouvel onglet du terminal

majid
la source
0

Créez simplement un dossier nommé «data» dans le lecteur C et à l'intérieur du dossier de données créez un autre dossier nommé «db». Ensuite, exécutez mongod.exe :)

Rohan Pawar
la source
Qu'est-ce qui vous fait penser que le demandeur a Windows ou a échoué à installer MongoDB?
Nemo