Node.js Mongodb:第一次连接时无法连接到服务器
我得到以下错误:Node.js Mongodb:第一次连接时无法连接到服务器,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我得到以下错误: 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)
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' }
看起来有点像有联系
我两个都试过了
$ mongod
及
这是我的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“用户测试”,因为我觉得mongoose或mongo或两者都会在运行中进行测试
我试过“localhost”和“127.0.0.1”".
我在OSX 10.11.5上
我正在运行Node 7.3.0和Mongo 3.2.9
我做错了什么?我如何找出问题所在?对于mongodb
,使用mongoose
,您可以使用:
mongoose.connect('mongodb://localhost/users_test');
或
或
但不是mongoose.connect('mongodb:localhost/users_test');
,它与正确的主机名不匹配(mongodb
,而不是localhost
)本地mongodb问题解决方案
请按照以下步骤解决此问题:
改变
mongodb://localhost:27017/local
到
错误消失了我多次遇到这个问题,下面是一些故障排除列表
数据库路径
是存在
,是C:\data\db中windows中的默认路径
mongo正在运行
,要运行它,请转到C:\Program Files\MongoDB\Server\3.4\bin
,然后运行以下程序:
mongod.exe
mongo.exe
连接字符串正确
如mongodb://localhost/database-name
对我来说,问题是mongo没有运行。所以首先我在控制台中启动了“mongod”命令。然后在另一个控制台选项卡中运行了“mongo”。现在连接成功了。
现在运行你的应用程序,你的问题应该得到解决。我在PowerShell实例中运行mongod。我在PowerShell控制台中没有从mongod获得任何输出。我单击了mongod运行的PowerShell实例,点击enter并恢复执行。我不确定是什么原因导致执行停止,但我可以连接到此insta立即关闭mongo。连接到wifi网络时,
mongodb://localhost/db_name
按预期工作
当我没有连接到任何wifi网络时,这无法工作。相反,我使用,
mongodb://127.0.0.1/db_name
,它成功了
可能与ip配置有关。我在尝试连接mlab db时遇到了相同的错误,这是因为我的组织网络有一些限制,我切换到了移动热点,它工作了。我尝试将mlab连接到我的公司wifi连接,它给出了此错误。但当我切换到persona时l网络已工作并已连接。如果mongo实例是在cloud.mongodb.com上构建的,则当实例只能从配置实例时IP白名单池中设置的已知IP地址工作时,会出现此错误 因此,需要从mongo仪表板设置左侧网络访问菜单的IP白名单上的当前IP地址 比尔 添加另一个答案,因为解决方案来自不同的上下文: MongoDb Atlas问题解决方案 我通过以下步骤连接到MongoDB Atlas并将我机器的IP列入白名单:
- 转到“安全”选项卡
- 转到“安全”选项卡下的“网络访问”选项卡
- 转到IP白名单选项卡
- 进入
如果是群集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字符串
“mongodb+srv://username:pass%40ord@clastername blqnk.mongodb.net/test?retryWrites=true&w=多数”
密码必须像示例字符串一样进行编码。我连接到一个VPN,它工作了。我正在使用学校的WiFi。如果云中有远程数据库,如ATLAS,您应该创建白名单条目0.0.0.0/0。这允许您从任何IP地址访问群集ATLAS
我尝试了上述所有方法
- 允许从任何数据库访问
- 已验证连接字符串的正确凭据
- 创建了另一个用户
幸运的是,它不是那么重要的DB(出于自我教育的目的),所以损害并没有那么大。除了配置问题之外,可能还有两个简单的原因
然后将您当前的IP添加到“访问列表条目”字段Mongodb默认端口为27017。我想您有一个小问题typo@BertrandMartel谢谢你强调了这一点。我不确定我是如何漏掉你的评论的。请使用命令ipconfig/ifconfig检查你系统的IP地址。如果它使用相同的IP地址,请检查nodejs控制台错误与mongodb建立连接的地址。mongodb://localhost/database-name 不mongdb://localhost/database-nameThis 这可能是一个鲜为人知的答案,但它救了我。谢谢这也救了我,thx mate。有趣的是,我的组织网络阻止了mongodb,但没有阻止PostgreSqlThank!尝试使用library hotspot访问我的,但没有成功king。你的解决方案可能适合你个人,但它并不能证明一个通用的解决方案,因为问题海报很可能不能简单地做你所做的事情。答案包含了前面答案中已经包含的解决方案。
mongoose.connect('localhost/users_test');
mongoose.connect('localhost','users_test');
mongodb://localhost:27017/local
localhost/local
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