首頁 > 後端開發 > Golang > 主體

為什麼我的 Go 應用程式無法連接到 Ubuntu 上的 MongoDB 雲端資料庫?

Susan Sarandon
發布: 2024-11-26 06:36:11
原創
435 人瀏覽過

Why Can't My Go Application Connect to My MongoDB Cloud Database on Ubuntu?

在Ubuntu 上的Go 中連接到Mongo 雲端資料庫時發生錯誤

問題

問題
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 訊息」。
  • 要解決此問題,請考慮以下解決方法:
  • 使用非SRV MongoDB URI: 這涉及在URI 中手動指定資料庫的主機和連接埠,而不是使用SRV 記錄。

更新/etc/resolv.conf:

將名稱伺服器替換為相容的和/或公用DNS 伺服器,例如1.1.1.1 或8.8.8.8.有關更多信息,請參閱GODRIVER-829。

以上是為什麼我的 Go 應用程式無法連接到 Ubuntu 上的 MongoDB 雲端資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板