【问题标题】:Error: querySrv ENOTFOUND _mongodb._tcp.dbname.fzofb.mongodb.net错误:querySrv ENOTFOUND _mongodb._tcp.dbname.fzofb.mongodb.net
【发布时间】:2021-04-13 19:56:08
【问题描述】:

我正在学习 Node.js,刚刚开始使用 MongoDB。

我正在与我创建的 MongoDB 集群建立连接

const dbURI = 'mongodb+srv://testuser:test1234@nodelearning.fzofb.mongodb.net/mydb?retryWrites=true&w=majority';
mongoose.connect(dbURI, { useNewUrlParser: true, useUnifiedTopology: true })
    .then((result) => console.log('connected to db'))
    .catch((err) => console.log(err));

当我运行它nodemon app 时,我得到了这个错误:

错误:querySrv ENOTFOUND _mongodb._tcp.mydb.fzofb.mongodb.net 在 QueryReqWrap.onresolve [as oncomplete] (node:dns:206:19) { errno: undefined, code: 'ENOTFOUND', syscall: 'querySrv',
主机名:'_mongodb._tcp.mydb.fzofb.mongodb.net'}

【问题讨论】:

标签: javascript node.js mongodb express mongoose


【解决方案1】:

FIX : : 以前我的集群密码是“chaudhary@786”,其中包含 特殊字符“@”,由此连接的罗盘字符串 编译器感到困惑,因此在下一回合我将密码更改为 “gghjkl98”,即没有任何特殊字符。我得到了连接 没有任何错误。

解决方案:集群密码不应包含 \backslash 等字符 或@或任何其他字符

【讨论】:

    【解决方案2】:

    您需要将连接字符串密码中的特殊字符转换为百分比编码。

    我在使用 mongodb-compass 时遇到了同样的问题。对我来说,这是不正确的连接字符串格式。所以就我而言,它需要将我密码中的@ 符号转换为%40(百分比编码)。

    您可以在here.here 中了解更多信息。

    【讨论】:

    • 非常感谢,它帮助了我。
    【解决方案3】:

    如果您尝试访问数据库的 IP 地址不在 IP 访问列表中,则会发生此错误。转到 MongoDB 登录并在安全下单击网络访问并检查您的 IP 是否已添加到那里。

    【讨论】:

      【解决方案4】:

      如果启用,请尝试禁用 VPN。它帮助了我。

      【讨论】:

        【解决方案5】:

        另外,如果您的 mongodb Atlas 集群在一段时间后处于非活动状态。它可能会暂停,然后当您运行服务器时,它会返回您遇到的错误。

        所以另一个赌注是登录您的 Atlas 帐户并确认它是否没有被暂停。好吧,我的这个选项只有在尝试了上述选项后才应该考虑。

        【讨论】:

        • @Bracken 这怎么不是问题的答案?我遇到了同样的错误,这解决了我的问题。再清楚不过了。
        • 抱歉,您的帖子确实包含答案,但您已经以对上一个答案的评论形式写了它。试着把你的答案写在一个独立的庄园里,就好像它们可能是最佳答案一样。不要以“也”开头。
        【解决方案6】:

        我有同样的问题。我使用的是最新的srv 字符串。我不知道这是否会帮助你。但是使用旧的

        mongodb://<username>:<password>@cluster0-shard-00-00.2pznz.mongodb.net:27017,cluster0-shard-00-01.2pznz.mongodb.net:27017,cluster0-shard-00-02.2pznz.mongodb.net:27017/myFirstDatabase?ssl=true&replicaSet=atlas-s5orlv-shard-0&authSource=admin&retryWrites=true&w=majority```
        

        【讨论】:

        • 这条评论帮助我解决了在 WSL2 的本地主机上运行 MongoDB 的问题。通过从连接字符串中删除+srv,连接按预期工作。
        【解决方案7】:

        错误表示代码没有错误。这为您提供了三种潜在的可能性:

        1. 确保您的计算机上有MongoDB installed
        2. 确保您已连接到不公开的 wifi。
        3. 请确保您已允许该 IP 进入 MongoDB 的网络访问,如下图所示:

        就我而言,我在共享办公空间中连接到公共 wifi。我更改了与我的个人热点的连接,它起作用了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-04-21
          • 2021-10-22
          • 2019-06-26
          • 2023-03-28
          • 2021-12-30
          • 1970-01-01
          • 2017-10-16
          • 2020-09-15
          相关资源
          最近更新 更多