node.js - [Error: no se pudo conectar a[localhost: 27017]] de NodeJS a mongodb
(6)
Estoy teniendo problemas para conectarme a MongoDB desde NodeJS usando el siguiente código de muestra. Intenté ejecutar "mongod" con o sin sudo pero el código de nodejs todavía no se puede conectar. Puedo conectarme exitosamente a la base de datos usando "mongo".
Ejecutándose en: MAC OS 10.6.8
var mongoClient = require(''mongodb'').MongoClient;
mongoClient.connect("mongodb://localhost:27017/test", function(error, db) {
if(!error){
console.log("We are connected");
}
else
console.dir(error);
});
consigue el siguiente error ejecutando el código anterior: [Error: no se pudo conectar a [localhost: 27017]]
También probé la mangosta pero error similar:
var mongoose = require(''mongoose'');
mongoose.connect(''mongodb://localhost/test'');
var db = mongoose.connection;
db.on(''error'', console.error.bind(console, ''connection error:''));
db.once(''open'', function callback () {
console.log("DB connected");
// yay!
});
Salida: error de conexión: [Error: no se pudo conectar a [localhost: 27017]]
Aquí está el registro de mongod
mongod --help for help and startup options
2014-07-11T23:33:47.843-0700 kern.sched unavailable
2014-07-11T23:33:47.849-0700 [initandlisten] MongoDB starting : pid=29942 port=27017 dbpath=/data/db 64-bit host=usc8bcc8a0d0b1
2014-07-11T23:33:47.849-0700 [initandlisten]
2014-07-11T23:33:47.849-0700 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
2014-07-11T23:33:47.849-0700 [initandlisten] db version v2.6.3
2014-07-11T23:33:47.849-0700 [initandlisten] git version: nogitversion
2014-07-11T23:33:47.849-0700 [initandlisten] build info: Darwin usc8bcc8a0d0b1 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun 7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_49
2014-07-11T23:33:47.849-0700 [initandlisten] allocator: system
2014-07-11T23:33:47.849-0700 [initandlisten] options: {}
2014-07-11T23:33:47.850-0700 [initandlisten] journal dir=/data/db/journal
2014-07-11T23:33:47.850-0700 [initandlisten] recover : no journal files present, no recovery needed
2014-07-11T23:33:47.901-0700 [initandlisten] waiting for connections on port 27017
2014-07-11T23:34:47.901-0700 [clientcursormon] mem (MB) res:48 virt:2810
2014-07-11T23:34:47.901-0700 [clientcursormon] mapped (incl journal view):320
2014-07-11T23:34:47.901-0700 [clientcursormon] connections:0
Alguien en Github encontró una solución: en lugar de escribir:
Mongoose.connect(config.database.url);
Escribir:
Mongoose.connect(config.database.url, {
keepAlive: true,
reconnectTries: Number.MAX_VALUE,
useMongoClient: true
});
(Fuente https://github.com/Automattic/mongoose/issues/5399 )
Intente agregar 127.0.0.1 localhost
en el /private/etc/hosts
.
La primera vez, cometí el error obvio de que mongod
(el servidor mongo) ni siquiera se estaba ejecutando.
La segunda vez, tuve el servidor ( mongod
) y el cliente ( mongo
) ejecutándose en mi Windows; en Indicaciones de comando separadas (por supuesto mongo
ejecutándose primero). mongod
y / o su mongod
comando se "colgó" (es decir, la última línea solo decía esto, y la última línea se mantuvo así a pesar de los intentos de conexión :)
2017-06-20T12:31:02.937-0600 I NETWORK [thread1] waiting for connections on port 27017
Hice clic en el símbolo del sistema presionando la barra espaciadora para "patearlo", y el símbolo del sistema imprimió líneas como estas:
2017-06-20T12:31:48.517-0600 I NETWORK [thread1] connection accepted from 127.0.0.1:50260 #1 (1 connection now open)
Que funciono
No importa, pude resolver el problema usando 127.0.0.1 en lugar de localhost, no estoy seguro de por qué tengo que usar la dirección IP. Mi servidor Tomcat, Apache, Redis e incluso el servidor de nodos funcionan con localhost pero no con el mongodb. ¿Hay alguna configuración que deba cambiar para que funcione con el host local?
Sí, me encontré con este error también, y mis hosts son los siguientes: 127.0.0.1 xxxxxx(the ip of my computer)
y cuando ejecuté npm start
en el proyecto Express, se npm start
un error como ese. Después de que intenté cambiar la asignación de 127.0.0.1
a localhost
, no tenía ningún error.
- Este problema puede ocurrir si su mongoDB no se apagó correctamente. Mongodb no puede conectarse a localhost pero puede conectarse a la dirección IP de localhost
- Inicie su servidor mongoDB usando el comando follwoing y luego intente lo mismo
./mongod --bind_ip localhost