在 Ubuntu 上的 Go 中连接到 Mongo 云数据库时出错
问题
尝试时使用以下命令连接到 Ubuntu 上 Go 中的 Mongo Cloud 数据库代码:
func connectToDataBase() { ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second) defer cancel() client, err := mongo.Connect(ctx, options.Client().ApplyURI(dbURL)) if err != nil { log.Fatal("Error connecting to Database: ", err.Error()) } DB = client.Database("storyfactory") }
出现错误消息:
2019/04/13 00:20:37 Error connecting to Database: error parsing uri (mongodb+srv://User:[email protected]/test?retryWrites=true): lookup cluster0-gpxjk.gcp.mongodb.net on 127.0.0.53:53: cannot unmarshal DNS message exit status 1
解决方案
此问题与 Go MongoDB 驱动程序没有直接关系,而是相反,Go 版本 1.11.x #10622 中的更改收紧了 SRV 记录的读取方式,如下RFC-2782。
如果权威 DNS 服务器使用域名压缩发送 SRV 记录,则 net.lookupSRV() 函数会抛出错误,并显示消息“无法解组 DNS 消息”。
要解决此问题,请考虑以下解决方法:
有关更多信息,请参阅 GODRIVER-829。
以上是为什么我的 Go 应用程序无法连接到 Ubuntu 上的 MongoDB 云数据库?的详细内容。更多信息请关注PHP中文网其他相关文章!