首页  >  文章  >  后端开发  >  为什么我的 Go 应用程序无法连接到 Ubuntu 上的 Mongo Cloud,并出现'无法解组 DNS 消息”错误?

为什么我的 Go 应用程序无法连接到 Ubuntu 上的 Mongo Cloud,并出现'无法解组 DNS 消息”错误?

Susan Sarandon
Susan Sarandon原创
2024-11-25 01:11:11514浏览

Why Does My Go Application Fail to Connect to Mongo Cloud on Ubuntu with a

在 Ubuntu 上从 Go 连接到 Mongo Cloud 数据库:故障排除

使用 Go 连接到 Mongo Cloud 数据库有时会带来挑战,特别是在操作系统之间转换时。在 Ubuntu 上遇到的此错误“错误解析 uri...无法解组 DNS 消息”与 MongoDB Go 驱动程序没有直接关系,而是源于 Go 版本 1.11.x 中的特定行为。

根本原因

该错误的出现是由于 Go 1.11.x 版本中 SRV 记录处理的收紧,特别是在 net.lookupSRV() 中 功能。这会导致 SRV 记录中的压缩域名被拒绝(如 RFC-2782 所定义)。某些 DNS 服务器(例如嵌入式 Docker DNS)可能会返回带有压缩域名的 SRV 记录,从而导致错误消息。

解决方法

要解决此问题,您有两种选择:

  • 使用非 SRV MongoDB URL: 创建不使用 SRV 记录的 MongoDB URI,直接连接到数据库。
  • 更新 /etc/resolv.conf: 修改 resolv.conf 文件并将名称服务器地址替换为兼容的公共 DNS 服务器,例如 1.1.1.1 或8.8.8.8。这将确保您的系统使用符合 SRV 记录格式要求的 DNS 服务器。

其他参考

有关更多信息,请参阅 MongoDB Go 驱动程序问题 GODRIVER- 829.

以上是为什么我的 Go 应用程序无法连接到 Ubuntu 上的 Mongo Cloud,并出现'无法解组 DNS 消息”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn