web-dev-qa-db-fra.com

Mongodb: échec de la connexion au serveur lors de la première connexion

Je reçois l'erreur suivante:

Warning { MongoError: failed to connect to server [mongodb:27017] on first connect
    at Pool.<anonymous> (/Users/michaelks/Desktop/users/node_modules/mongodb-core/lib/topologies/server.js:325:35)
    at emitOne (events.js:96:13)
    at Pool.emit (events.js:188:7)
    at Connection.<anonymous> (/Users/michaelks/Desktop/users/node_modules/mongodb-core/lib/connection/pool.js:270:12)
    at Connection.g (events.js:292:16)
    at emitTwo (events.js:106:13)
    at Connection.emit (events.js:191:7)
    at Socket.<anonymous> (/Users/michaelks/Desktop/users/node_modules/mongodb-core/lib/connection/connection.js:173:49)
    at Socket.g (events.js:292:16)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at connectErrorNT (net.js:1025:8)
    at _combinedTickCallback (internal/process/next_tick.js:74:11)
    at process._tickCallback (internal/process/next_tick.js:98:9)
  name: 'MongoError',
  message: 'failed to connect to server [mongodb:27017] on first connect' }

Même si je reçois ceci dans la fenêtre du terminal où je lance Mongo:

2016-12-25T03:45:23.715+0100 I NETWORK [initandlisten] connection accepted from 127.0.0.1:58868 #8 (8 connections now open) 

On dirait qu'il y a une connexion ..

J'ai essayé les deux

$ mongod 

et

$ brew services start mongo 

C'est mon test_helper.js

const mongoose = require('mongoose');
mongoose.connect('mongodb:localhost/users_test');
mongoose.connection
 .once('open', () => console.log('Good to go!'))
 .on('error', (error) => {
 console.warn('Warning', error);
 });

Je n'ai pas spécifiquement fait la base de données "users_test" car j'ai l'impression que mangouste ou mongo ou les deux le feront à la volée.

J'ai essayé les deux "localhost" et "127.0.0.1". Je suis sous OSX 10.11.5 Je suis sous Node 7.3.0 et Mongo 3.2.9

Qu'est-ce que je fais mal? Comment puis-je comprendre ce qui ne va pas?

25

Pour vous connecter à mongodb avec mongoose, vous pouvez utiliser:

mongoose.connect('mongodb://localhost/users_test');

ou

mongoose.connect('localhost/users_test');

ou

mongoose.connect('localhost','users_test');

Mais pas mongoose.connect('mongodb:localhost/users_test');, il ne correspond pas au bon nom d'hôte (mongodb au lieu de localhost)

21
Bertrand Martel

J'ai rencontré ce problème plusieurs fois, et voici quelques troubleshooting list

  1. assurez-vous que database path est exist, le chemin par défaut dans les fenêtres de C:\data\db
  2. assurez-vous que mongo is running, pour l'exécuter, accédez à C:\Program Files\MongoDB\Server\3.4\bin et exécutez ce qui suit:
    1. mongod.exe
    2. mongo.exe
  3. assurez-vous que votre connection string is correct ressemble à mongdb://localhost/database-name
8

La même erreur se produisait lorsque j'essayais de connecter la base de données mlab, car le réseau de mon entreprise est soumis à certaines restrictions. Je suis passé au point d'accès mobile et cela a fonctionné.

6
Mohit Turkar

Ajouter une réponse supplémentaire car la solution provient de différents contextes:

Problème MongoDb Atlas

Je me suis connecté à MongoDB Atlas et la liste blanche de l'IP de mon ordinateur en suivant les étapes ci-dessous:

  • Aller sur l'onglet sécurité

the security tab

  • Accédez à l'onglet d'accès au réseau sous l'onglet Sécurité.

network access tab under security tab

  • Aller sur l'onglet liste blanche IP

IP whitelist tab


4
student

Bien que connecté à un réseau wifi, mongodb://localhost/db_name a fonctionné comme prévu.

Lorsque je n'étais connecté à aucun réseau wifi, cela ne pouvait pas fonctionner. Au lieu de cela, j'ai utilisé mongodb://127.0.0.1/db_name et cela a fonctionné.

Probablement un problème à faire avec les configurations ip.

3
Isaac Sekamatte

J'exécutais Mongod dans une instance de PowerShell. Je ne recevais aucune sortie dans la console Powershell de Mongod. J'ai cliqué sur l'instance PowerShell où mongod était en cours d'exécution, appuyé sur Entrée et l'exécution a repris. Je ne suis pas sûr de ce qui a provoqué l'arrêt de l'exécution, mais je peux me connecter immédiatement à cette instance de mongo.

2
Mike Veazie

Si l'instance mongo est générée sur cloud.mongodb.com, cette erreur apparaît lorsqu'elle peut uniquement fonctionner à partir d'adresses IP connues définies dans le pool de listes blanches IP lors de la configuration de l'instance.

Donc, à partir du tableau de bord mongo, il faut définir l'adresse IP actuelle de la liste blanche IP à partir du menu d'accès au réseau sur la gauche.

BR,

J'essayais de connecter mlab avec la connexion wifi de mon entreprise et cela donnait cette erreur. Mais lorsque je suis passé au réseau personnel, cela a fonctionné et s'est connecté.

1
Pooja S Arkasali

Pour moi, le problème était que mongo n'était pas en cours d'exécution. J'ai donc d'abord lancé la commande "mongod" dans la console. Plus tard, dans un autre onglet de la console, j'ai exécuté "mongo". Maintenant la connexion est réussie. Maintenant, lancez votre application, votre problème doit être résolu.

1
Sai Prasad

Solution locale à un problème MongoDb

résolvez-le en suivant les étapes ci-dessous:

Modifié

mongodb://localhost:27017/local

à

localhost/local

Et l'erreur disparue

1
student