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?
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
)
J'ai rencontré ce problème plusieurs fois, et voici quelques troubleshooting list
database path
est exist
, le chemin par défaut dans les fenêtres de C:\data\db
mongo is running
, pour l'exécuter, accédez à C:\Program Files\MongoDB\Server\3.4\bin
et exécutez ce qui suit: mongod.exe
mongo.exe
connection string is correct
ressemble à mongdb://localhost/database-name
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é.
Ajouter une réponse supplémentaire car la solution provient de différents contextes:
Je me suis connecté à MongoDB Atlas et la liste blanche de l'IP de mon ordinateur en suivant les étapes ci-dessous:
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.
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.
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é.
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.
résolvez-le en suivant les étapes ci-dessous:
Modifié
mongodb://localhost:27017/local
à
localhost/local
Et l'erreur disparue