连接到 MongoDB Atlas Cluster 错误
Posted
技术标签:
【中文标题】连接到 MongoDB Atlas Cluster 错误【英文标题】:Connection to MongoDB Atlas Cluster error 【发布时间】:2019-05-27 02:18:25 【问题描述】:我在通过 Node.js、express 和 mongoose 连接到我的 MongoDB Atlas 集群时遇到问题:
MongoNetworkError: connection 4 to mongodb-passport-auth-shard-00-00-vp7yg.mongodb.net:27017 closed
at TLSSocket.<anonymous> (C:\Users\Vishesh\Documents\Projects\nodejs-passport-auth\node_modules\mongodb-core\lib\connection\connection.js:276:9)
at Object.onceWrapper (events.js:273:13)
at TLSSocket.emit (events.js:187:15)
at _handle.close (net.js:606:12)
at TCP.done (_tls_wrap.js:386:7)
name: 'MongoNetworkError',
errorLabels: [ 'TransientTransactionError' ],
[Symbol(mongoErrorContextSymbol)]:
这是我用于通过短 SRV 连接字符串连接到集群的代码:
mongoose
.connect(
'mongodb+srv://myname:mypwd@myapp-vp7yg.mongodb.net/test?retryWrites=true',
useNewUrlParser: true
)
.then(() => console.log("Connected to mongodb..."))
.catch(err => console.log(err));
【问题讨论】:
我以前从未见过这个错误,但是根据错误文本,它看起来像网络错误或mongodb端口错误,尝试将mongodb连接到不同的端口,但在此之前在不同的端口启动mongodb服务。 我遇到了同样的问题。你解决了吗?对我来说,它昨天和前几天都在工作,但今天它就行不通了。它被定义为短暂的,但对我来说似乎是永久性的 你是如何解决这个错误的?我在 IP 白名单0.0.0.0/0
中遇到此错误,它丢弃了答案中给出的解决方案。
【参考方案1】:
我认为您必须将您的 IP 地址添加到 mongoDB.atlas 控制台中的 IP 白名单。
【讨论】:
【参考方案2】:我遇到了同样的错误,这是解决此问题的解决方案。 将您的 ip 添加到 IP 白名单中。
希望有帮助。
【讨论】:
【参考方案3】:我遇到了错误
MongoNetworkError: connection 1 to ......-shard-00-00.b2zap.mongodb.net:27017 closed
即使我在 IP 白名单中添加了允许从任何位置访问。
添加我的 IP 地址并允许从任何地方访问后,它对我有用。
【讨论】:
【参考方案4】:更新您的 mongoose.connect 方法以避免出现弃用警告
mongoose.connect(
mongoAtlasUri,
useNewUrlParser: true,
useCreateIndex: true,
useUnifiedTopology: true,
useFindAndModify: false,
,
() => console.log(" Mongoose is connected")
);
如果您不知道自己的 IP 地址,也可以使用这个 IP 地址 - 0.0.0.0/0,但建议使用您自己的 IP 地址。
【讨论】:
【参考方案5】:我最近遇到了这个问题,这是来自 altas 方面的某种错误。 即使您已允许所有存在图集的 IP,它仍然会抛出相同的错误。
通过添加您的位置 IP 来修复它的方法。您有一个专门的白名单您自己的 IP,考虑到您已允许所有 IP,这有点奇怪。
这对我有用,我希望这对其他人也有帮助。
【讨论】:
以上是关于连接到 MongoDB Atlas Cluster 错误的主要内容,如果未能解决你的问题,请参考以下文章
尝试将 Heroku 连接到 Atlas MongoDB 时出现问题
无法使用 MEAN 堆栈连接到 Mongodb.atlas 集群