ホームページ > バックエンド開発 > Golang > Go アプリケーションが Ubuntu 上の MongoDB クラウド データベースに接続できないのはなぜですか?

Go アプリケーションが Ubuntu 上の MongoDB クラウド データベースに接続できないのはなぜですか?

Susan Sarandon
リリース: 2024-11-26 06:36:11
オリジナル
502 人が閲覧しました

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

Ubuntu 上の Go で Mongo Cloud データベースに接続中にエラーが発生しました

問題

を試行したとき以下を使用して、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 メッセージをアンマーシャルできません」というメッセージを含むエラーをスローします。

この問題を解決するには、次の回避策を検討してください。

  • 非 SRV MongoDB URI: これには、SRV レコードを使用する代わりに、URI でデータベースのホストとポートを手動で指定することが含まれます。
  • Update /etc/resolv.conf: ネームサーバーを、1.1.1.1 や 1.1.1.1 などの準拠したパブリック DNS サーバーに置き換えます。 8.8.8.8.

詳細については、GODRIVER-829 を参照してください。

以上がGo アプリケーションが Ubuntu 上の MongoDB クラウド データベースに接続できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート