Heim >Backend-Entwicklung >Golang >Warum kann mein Go mgo-Treiber keine Verbindung zum MongoDB Atlas Replica Set herstellen und meldet den Fehler „Kein erreichbarer Server'?

Warum kann mein Go mgo-Treiber keine Verbindung zum MongoDB Atlas Replica Set herstellen und meldet den Fehler „Kein erreichbarer Server'?

Susan Sarandon
Susan SarandonOriginal
2024-11-30 09:57:10626Durchsuche

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

Herstellen einer Verbindung zu MongoDB Atlas mithilfe von Golang Mgo: Behebung des Problems „Kein erreichbarer Server für Replikatsatz“

Frage:

Beim Herstellen einer Verbindung zu einem Replikatsatz auf MongoDB Atlas mithilfe des Golang-mgo-Treibers wird eine Fehlermeldung angezeigt „Kein erreichbarer Server“ wird trotz erfolgreicher Verbindungen mit anderen Sprachen und dem regulären Mongo-Client festgestellt.

Antwort:

Eine modifizierte Version des MGO-Codeausschnitts unten wurde erfolgreich eingerichtet Eine Verbindung zu MongoDB Atlas anhand des bereitgestellten Beispiels Parameter:

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)

Überlegung:

  • Sie können nur eines der Replikatsatzmitglieder als Startwert angeben, z. B.: Addrs: []string {"prefix2.mongodb.net:27017"}.
  • Die Methode mgo.ParseURL() wird derzeit nicht unterstützt SSL, daher muss für die Verwendung zum Parsen der MongoDB Atlas-URI-Zeichenfolge zuvor die Zeile ssl=true entfernt werden.

Das obige ist der detaillierte Inhalt vonWarum kann mein Go mgo-Treiber keine Verbindung zum MongoDB Atlas Replica Set herstellen und meldet den Fehler „Kein erreichbarer Server'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn