Mongodb:第一次连接时无法连接到服务器
我得到以下错误:
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' }
即使我在运行Mongo的terminal窗口中得到这个:
2016-12-25T03:45:23.715+0100 I NETWORK [initandlisten] connection accepted from 127.0.0.1:58868 #8 (8 connections now open)
看起来有点关系
我已经尝试了两个
$ mongod
和
$ brew services start mongo
这是我的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); });
我没有具体做数据库“users_test”,因为我的印象是mongoose或mongo或两者都会在飞行中这样做。
我已经尝试了“localhost”和“127.0.0.1”。 我在OSX 10.11.5我正在运行Node 7.3.0和Mongo 3.2.9
我究竟做错了什么? 我怎么知道有什么问题?
要用mongoose
连接到mongodb
,可以使用:
mongoose.connect('mongodb://localhost/users_test');
要么
mongoose.connect('localhost/users_test');
要么
mongoose.connect('localhost','users_test');
但不是mongoose.connect('mongodb:localhost/users_test');
,它不匹配正确的主机名( mongodb
而不是localhost
)
我遇到这个问题的时间,这里是一些troubleshooting list
- 确保
database path
exist
,C:\data\db
中的窗口中的默认path - 确保
mongo is running
,运行到C:\Program Files\MongoDB\Server\3.4\bin
并运行以下命令:-
mongod.exe
-
mongo.exe
-
- 确保你的
connection string is correct
比如mongdb://localhost/database-name
变
mongodb://localhost:27071/local
至
localhost/local
而错误消失了