错误:QueryReqWrap.onresolve 处的 querySrv ENODATA _mongodb._tcp.blog-cluster-0hb5z.mongodb.net [as oncom

Posted

技术标签:

【中文标题】错误:QueryReqWrap.onresolve 处的 querySrv ENODATA _mongodb._tcp.blog-cluster-0hb5z.mongodb.net [as oncomplete] [关闭]【英文标题】:Error: querySrv ENODATA _mongodb._tcp.blog-cluster-0hb5z.mongodb.net at QueryReqWrap.onresolve [as oncomplete] [closed] 【发布时间】:2019-06-26 08:04:00 【问题描述】:

看起来我无法再连接到我的免费 Mongo Atlas 集群了。一切正常,当我查看 MongoDB 网站时,我收集了一些数据,所以我不知道它为什么停止工作并且无法再连接。我的整个网站将无法加载。

这是我得到的错误:

 Error: querySrv ENODATA _mongodb._tcp.blog-cluster-0hb5z.mongodb.net
    at QueryReqWrap.onresolve [as oncomplete] (dns.js:197:19)
  errno: 'ENODATA',
  code: 'ENODATA',
  syscall: 'querySrv',                                                                  Blog/app.js:54:14
  hostname: '_mongodb._tcp.blog-cluster-0hb5z.mongodb.net' 

【问题讨论】:

我通过升级节点版本解决了这个问题。它与节点版本 10.15.0 引发相同的错误,并通过将其升级到 15.3.0 得到修复。 我真的重新启动了我的机器,一切恢复正常。我使用 Windows,当我启动它时,它会通过一个更新对话框运行,所以我怀疑它与此有关。 【参考方案1】:

我在咖啡店尝试访问我的 MongoDB Atlas 时遇到了这个问题。它以前一直工作完美,但突然给了我这个确切的错误。我不知道为什么,我不能给你所有的细节,但对我来说修复它的是去我的集群并使用标准连接字符串连接。我复制并粘贴了那个较长的连接字符串,在输入密码并设置后,它对我有用。 希望对您有所帮助。

【讨论】:

你能举一个你拥有的字符串和标准字符串的例子吗? @chimpsarehungry 你找到“标准连接字符串”的格式了吗? @JuanRicardo 不,发生这种情况时我就离开星巴克【参考方案2】:

由于某种原因,dns 服务器没有返回 srv 记录,将 dns 服务器更改为返回这些记录的服务器解决了问题。 (我使用https://use.opendns.com/ 修复它)

【讨论】:

这应该是公认的答案。我经常出差,大约 5-10% 的 WIFI 网络最终会遇到这个问题。一旦我将我的 DNS 提供商更改为 8.8.8.8 (Google),我就能够连接。 developers.google.com/speed/public-dns/docs/using 我想你可以使用 CloudFlare 或其他各种 DNS 提供商,但我还没有测试过。 这个对我有用。更新了我的 wifi 的 DNS 服务器,错误消失了。谢谢!【参考方案3】:

我在星巴克工作时遇到了同样的问题,回家后它立即连接尝试不同的 wifi 连接。

【讨论】:

有没有其他办法解决这个问题? 是的,一样。在星巴克,它不工作。 在星巴克?不工作?使用 Node.js 2.2.12 连接字符串。在这里回答:***.com/a/55639024/2055760。 mongodb Atlas UI 为它提供了一个选项。在第 1 步中,选择 Node.js 驱动程序,然后将版本从 3.0 更改为 2.2.12 or later,他们会为您提供适用于 Starbucks WiFi 的连接字符串。 星巴克仍然不允许连接:( 这件事现在发生在我的星巴克里。我什至在白名单中添加了星巴克的 IP。这是星巴克对开发商的阴谋。【参考方案4】:

对我来说,这个问题只发生在星巴克咖啡中,而且是随机的,OpenDNS 对我、谷歌 DNS 或任何其他尝试都不起作用,这很有趣,因为在家里可以正常工作。以前我使用 mongodb+srv 字符串格式在“uri”内部使用 Mongoid 和 Ruby 与 mongoid.yml 配置文件进行连接。

为了解决这个问题,请确保遵循此链接https://docs.atlas.mongodb.com/driver-connection/(Mongoid 示例)中描述的配置

production:
  # Configure available database clients. (required)
  clients:
    # Defines the default client. (required)
    default:
      # Defines the name of the default database that Mongoid can connect to.
      # (required).
      database: 'myDatabaseName'

      # Provides the hosts the default client can connect to. Must be an array
      # of host:port pairs. (required)
      hosts:
        - mycluster0-shard-00-00.mongodb.net:27017
        - mycluster0-shard-00-01.mongodb.net:27017
        - mycluster0-shard-00-02.mongodb.net:27017
      options:
        # The name of the user for authentication.
        user: kay

        # The password of the user for authentication.
        password: myRealPassword

        # The database or source to authenticate the user against. If the database
        # specified above is not admin, admin MUST be specified here.
        auth_source: admin

        # All Atlas servers use SSL. (default: false)
        ssl: true

【讨论】:

【参考方案5】:

在某些情况下,当您的 IP 地址未在 MongoDB Atlas 集群中列入白名单时,就会发生这种情况。这就是为什么它可以在您最初注册帐户的家中使用您的 IP 地址,但不能在咖啡店 WIFI 或其他地方使用。

因此,请确保将您当前的 IP 地址添加到您的 MongoDB 集群中。

【讨论】:

以上是关于错误:QueryReqWrap.onresolve 处的 querySrv ENODATA _mongodb._tcp.blog-cluster-0hb5z.mongodb.net [as oncom的主要内容,如果未能解决你的问题,请参考以下文章

Pig 安装错误:错误 pig.Main:错误 2998:未处理的内部错误

Informix 错误:发生了语法错误。错误代码:-201

我收到一个错误:“MetaMask - RPC 错误:错误:错误:[ethjs-rpc] rpc 错误与有效负载”

错误精灵错误跟踪器错误

网页打开显示错误500是啥意思

PHP错误处理