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的主要内容,如果未能解决你的问题,请参考以下文章

请教iptables对指定端口的IP白名单设置

“阿里云”ECS服务器怎么设置IP白名单?

设置SSH登录IP白名单,过滤非法IP密码登录请求

lixnu系统防火墙上白名单怎么加

微信公众平台ip白名单动态域名怎么设置

微信小程序 IP白名单是指外网IP还是内网IP呢?如:192.168.2.144还是外网的IP?