mongoDB白名单IP
Posted
技术标签:
【中文标题】mongoDB白名单IP【英文标题】:mongoDB whitelist IP 【发布时间】:2021-05-02 23:53:51 【问题描述】:我看到了类似的帖子,但是没有一个可以帮助我解决我的问题。
按照从头开始构建 MERN 应用程序的 Udemy 教程,我卡在了 mongoose 连接上。
这是我的 index.js 代码:
const express = require("express");
const mongoose = require("mongoose");
const app = express();
app.use(express.json());
app.listen(5000, () => console.log("Server started on port 5000"));
app.use("/snippet", require("./routers/snippetRouter"));
mongoose.connect("mongodb+srv://snippetUser:_password_@
snippet-manager.sometext.mongodb.net/main?retryWrites=
true&w=majority",
useNewUrlParser: true,
useUnifiedTopology: true
, (err) =>
if (err) return console.log("error here " + err);
console.log("Connected to MongoDB");
);
这是我得到的错误:
Server started on port 5000
error here MongooseServerSelectionError: Could not connect to any
servers in your MongoDB Atlas cluster. One common reason is
that you're trying to access the database from an IP that isn't
whitelisted. Make sure your current IP address is on your Atlas
cluster's IP whitelist:
https://docs.atlas.mongodb.com/security-whitelist/
如上所述,我看到与未列入白名单的 IP 相关的类似错误。
但是,在我的 mongoDB 帐户中,我的 IP 似乎已经被列入白名单:
在上面的屏幕截图中,空白部分是我的 IP 所在的位置(就在它说“包括您当前的 IP 地址”之前)。
既然我的 IP 被列在那里,那不就意味着我的 IP 被列入白名单了吗?
如果没有,我如何将我的 IP 列入白名单?
【问题讨论】:
main
实际上是您的数据库名称还是占位符?
@codemonkey - 你让我怀疑自己。我现在正在寻找真正的名字。
@codemonkey - 我似乎无法找到实际的数据库名称。我很确定它是“主要的”。
在集群页面,点击“收藏”。它将在左侧列中的集合上方显示数据库名称。您需要该数据库名称才能连接。
@codemonkey,它显示为 "DATABASES:0 COLLECTIONS: 0" 。我猜“main”只是一个占位符。
【参考方案1】:
经过几天的挫折后,我进入了 Mongo Atlas,然后进入网络访问并将设置更改为“允许从任何地方访问”。它删除了我的 IP 地址并将其更改为通用 IP 地址。
这与我在 Udemy 上的教程有所不同,但它确实奏效了,我终于可以继续学习剩下的课程了。
【讨论】:
以上是关于mongoDB白名单IP的主要内容,如果未能解决你的问题,请参考以下文章