我收到以下错误:
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的终端窗口中得到这个:
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);
});
我没有专门制作db&#34; users_test&#34;因为我认为猫鼬或mongo或两者都会在飞行中这样做。
我已尝试过两次&#34; localhost&#34;和&#34; 127.0.0.1&#34;。 我是OSX 10.11.5 我正在运行Node 7.3.0和Mongo 3.2.9
我做错了什么?我怎么弄清楚出了什么问题?
答案 0 :(得分:21)
mongodb
To connect到mongoose
,您可以使用:
mongoose.connect('mongodb://localhost/users_test');
或
mongoose.connect('localhost/users_test');
或
mongoose.connect('localhost','users_test');
但不是mongoose.connect('mongodb:localhost/users_test');
,它与正确的主机名不匹配(mongodb
而不是localhost
)
答案 1 :(得分:9)
添加另一个答案,因为解决方案来自不同的上下文:
我已连接到MongoDB Atlas,并按照以下步骤将机器的IP列入了白名单:
答案 2 :(得分:7)
我遇到了这个问题serval次,这里有一些troubleshooting list
database path
为exist
,C:\data\db
mongo is running
,运行它转到C:\Program Files\MongoDB\Server\3.4\bin
并运行以下命令:
mongod.exe
mongo.exe
connection string is correct
赞mongdb://localhost/database-name
答案 3 :(得分:3)
当我尝试连接mlab db时出现同样的错误,这是因为我的组织网络有一些限制,我切换到移动热点并且它有效。
答案 4 :(得分:2)
如果它是集群MongoDB,那么您需要将当前IP添加到集群,要添加当前IP地址,您需要完成以下几个步骤-
step 1- go to login page of Mongodb and login with valid credential - https://cloud.mongodb.com/user#/atlas/login
step 2- CLick Network Access from left sidebar under Security Section
Step 3 - Click Add IP Address
Step 4 - Click Add Current IP Address or Allow Connection From Any Where
now try to connect - npm start
,对于本地MongoDB,请使用mongo String,例如 “ mongodb + srv:// username:pass%40ord@clastername-blqnk.mongodb.net/test?retryWrites = true&w = majority”
密码必须像示例字符串一样编码
答案 5 :(得分:1)
更改
mongodb://localhost:27017/local
到
localhost/local
错误消失了
答案 6 :(得分:1)
对我来说,问题是mongo没有运行。所以首先我在控制台中启动了“mongod”命令。稍后在另一个控制台选项卡中我运行了“mongo”。现在连接成功了。 现在运行您的应用程序,您的问题应该得到解决。
答案 7 :(得分:1)
我在PowerShell实例中运行mongod。我没有在mongod的powershell控制台中获得任何输出。我点击运行mongod的PowerShell实例,点击回车然后恢复执行。我不确定导致执行暂停的原因,但我现在可以立即连接到这个mongo实例。
答案 8 :(得分:1)
连接到wifi网络时,mongodb://localhost/db_name
按预期工作。
当我没有连接到任何wifi网络时,这无法正常工作。相反,我用过,
mongodb://127.0.0.1/db_name
并且它有效。
可能与ip配置有关。
答案 9 :(得分:1)
我已连接到VPN,并且可以正常工作。我正在使用学校的WiFi。
答案 10 :(得分:0)
我正在尝试将mlab与公司的wifi连接连接,并且出现此错误。但是当我切换到个人网络后,它开始工作并建立了连接。
答案 11 :(得分:0)
如果mongo实例是在cloud.mongodb.com上构建的,则当该实例只能通过配置该实例的IP白名单池中设置的已知IP地址工作时,就会出现此错误。
因此,需要从mongo仪表板的左侧网络访问菜单中的IP白名单上设置当前IP地址。
BR,
答案 12 :(得分:0)
答案 13 :(得分:0)
除了配置问题外,可能有两个简单的原因。
要添加白名单IP,请登录MongoDB Atlas,转到安全 -> 网络访问 -> 添加IP地址
然后在'访问列表条目'字段中添加您当前的IP
答案 14 :(得分:-1)
上面的方法我都试过了。
这些都不适合我。
最后,我创建了一个新数据库并切换到它。一切都很好。 幸运的是,DB 并不是那么重要(出于自我教育目的),因此损害没有那么大。