MongoDB连接错误getaddrinfo ENOTFOUND Cluster0_shard_name

时间:2019-09-09 12:21:33

标签: node.js mongodb mongoose

我在尝试连接MongoDB时遇到问题。我在这里用猫鼬

console.log("trying here"); // prints

await mongoose.connect(db, {
  useNewUrlParser: true,
  useCreateIndex: true,
  useFindAndModify: false
});

console.log("Mongo DB connected"); // never reached

它抛出一个错误

getaddrinfo ENOTFOUND cluster0-shard-00-01-abcde.mongodb.net

我以前从未遇到过此错误,它过去可以正常工作-不知道从这里去哪里。我尝试建立一个新的群集,并且将IP的网络访问设置为公共0.0.0.0。它只是不断抛出相同的错误。

2 个答案:

答案 0 :(得分:0)

我遇到了同样的错误。

您如何使用mongo连接字符串?你的猫鼬版本是什么?

如果您使用的是最新版本的猫鼬,请尝试使用以下字符串

我将字符串从mongodb://<user>:<password>...更改为mongodb+srv://<user>:<password>...

答案 1 :(得分:0)

请注意,如果您指定useNewUrlParser: true,则必须在连接字符串中指定端口, 像mongodb://localhost:27017/dbname。 新的网址解析器不支持没有端口的连接字符串,例如mongodb://localhost/dbname

see more info here

如果您使用node.js + mongo Atlas,则还有一个选择:

  1. 登录https://cloud.mongodb.com/
  2. 转到您的集群0或 其他集群
  3. 单击“连接......选择应用程序连接”
  4. 选择node.js,然后选择2.2.12或更高版本-

您将获得以mongodb://开头的连接字符串

由mongodb + srv://插入(用于节点js 3.0或更高版本)