MongoError:在 mongoDB atlas 中首次连接时无法连接服务
Posted
技术标签:
【中文标题】MongoError:在 mongoDB atlas 中首次连接时无法连接服务【英文标题】:MongoError: failed to connect to serve on first connect in mongoDB atlas 【发布时间】:2018-09-01 20:44:18 【问题描述】:下面输入了我的连接代码。我正在尝试连接到 MongoDB atlas 免费共享集群,但一直收到错误消息,提示无法在第一时间连接到服务器。
const express = require("express");
const app = express();
const morgan = require("morgan");
const bodyParser = require("body-parser");
const mongoose = require("mongoose");
mongoose.Promise = require('bluebird');
const productRoutes = require("./api/routes/products");
const orderRoutes = require("./api/routes/orders");
mongoose.connect(
"mongodb://username:password6@cluster0-shard-00-00-3xdjv.mongodb.net:27017,cluster0-shard-00-01-3xdjv.mongodb.net:27017,cluster0-shard-00-02-3xdjv.mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin",
useMongoClient: true
) .then(() => // if all is ok we will be here
return server.start();
)
.catch(err => // we will not be here...
console.error('App starting error:', err.stack);
process.exit(1);
);
谁能解释为什么我一直收到这个错误:
应用启动错误:
MongoError: 首次连接时无法连接到服务器 [cluster0-shard-00-00-3xdjv.mongodb.net:27017] [MongoError:getaddrinfo EAI_AGAIN cluster0-shard-00-00-3xdjv.mongodb.net:27017].....
【问题讨论】:
你能ping通远程服务器吗?然后你可以连接 RoboMongo/Robo 3T 吗?该错误只是意味着它无法连接,因此应用标准网络诊断...... 【参考方案1】:在我意识到我已经设置了仅允许来自某个 IP 的连接的网络访问规则之前,我遇到了同样的问题。删除该限制并添加新规则以允许来自任何地方的所有连接后,问题就消失了
我的数据源配置如下:
"mongodb-atlas":
"url": "mongodb+srv://dbuser:PaSsWOrd@cluster0-oxxxb.gcp.mongodb.net/test?retryWrites=true&w=majority&authSource=admin",
"name": "mongodb-atlas",
"connector": "mongodb",
"database": "admin"
【讨论】:
以上是关于MongoError:在 mongoDB atlas 中首次连接时无法连接服务的主要内容,如果未能解决你的问题,请参考以下文章
MongoError:在 mongoDB atlas 中首次连接时无法连接服务
MongoError:身份验证失败。 NestJs MongoDb 图集
未处理的拒绝 MongoError:无法连接到 MongoDB 中的服务器
MongoDB 驱动程序:MongoError:未找到游标,游标 ID:7820213409290816 在命名空间:db_name.collection_name
MongoError:此 MongoDB 部署不支持可重试写入。请将 retryWrites=false 添加到您的连接字符串
MongoError:此 MongoDB 部署不支持可重试写入。请将 retryWrites=false 添加到您的连接字符串