ホームページ > バックエンド開発 > Golang > Go mgo ドライバーが「到達可能なサーバーがありません」エラーで MongoDB Atlas レプリカ セットに接続できないのはなぜですか?

Go mgo ドライバーが「到達可能なサーバーがありません」エラーで MongoDB Atlas レプリカ セットに接続できないのはなぜですか?

Susan Sarandon
リリース: 2024-11-30 09:57:10
オリジナル
663 人が閲覧しました

Why Does My Go mgo Driver Fail to Connect to MongoDB Atlas Replica Set with a

Golang Mgo を使用した MongoDB Atlas への接続: 「レプリカ セットに到達可能なサーバーがない」問題の解決

質問:

MongoDB Atlas 上のレプリカ セットに接続する場合、 Golang mgo ドライバーでは、他の言語および通常の Mongo クライアントとの接続に成功したにもかかわらず、「到達可能なサーバーがありません」というエラー メッセージが表示されます。

回答:

修正バージョン以下の mgo コード スニペットは、提供された例を使用して MongoDB Atlas への接続を正常に確立します。パラメータ:

import (
    "gopkg.in/mgo.v2"
    "crypto/tls"
    "net"
)

tlsConfig := &tls.Config{}

dialInfo := &mgo.DialInfo{
    Addrs: []string{"prefix1.mongodb.net:27017", 
                    "prefix2.mongodb.net:27017",
                    "prefix3.mongodb.net:27017"},
    Database: "authDatabaseName",
    Username: "user",
    Password: "pass",
}
dialInfo.DialServer = func(addr *mgo.ServerAddr) (net.Conn, error) {
    conn, err := tls.Dial("tcp", addr.String(), tlsConfig)
    return conn, err
}
session, err := mgo.DialWithInfo(dialInfo)
ログイン後にコピー

考慮事項:

  • 次のように、レプリカ セット メンバーの 1 つだけをシードとして指定できます。 Addrs: []string {"prefix2.mongodb.net:27017"}.
  • mgo.ParseURL() メソッドは現在 SSL をサポートしていないため、これを使用して MongoDB Atlas URI 文字列を解析するには、事前に ssl=true 行を削除する必要があります。

以上がGo mgo ドライバーが「到達可能なサーバーがありません」エラーで MongoDB Atlas レプリカ セットに接続できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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