Herstellen einer Verbindung zu MongoDB Atlas mithilfe von Golang MGO: Permanentes „Kein erreichbarer Server“ für den Replikatsatz
Diese Fehlermeldung tritt häufig auf, wenn versucht wird, eine Verbindung herzustellen zu einem MongoDB Atlas-Replikatsatz mithilfe des MGO-Treibers von Golang. Um dieses Problem zu beheben, ziehen Sie die folgenden Schritte in Betracht:
Verwenden Sie das unten bereitgestellte MGO-Code-Snippet:
import ( "gopkg.in/mgo.v2" "crypto/tls" "net" ) // Configure TLS settings tlsConfig := &tls.Config{} // Initialize the DialInfo object dialInfo := &mgo.DialInfo{ Addrs: []string{"prefix1.mongodb.net:27017", "prefix2.mongodb.net:27017", "prefix3.mongodb.net:27017"}, Database: "authDatabaseName", Username: "user", Password: "pass", } // Override the default DialServer method dialInfo.DialServer = func(addr *mgo.ServerAddr) (net.Conn, error) { conn, err := tls.Dial("tcp", addr.String(), tlsConfig) return conn, err } // Establish the connection using DialWithInfo session, err := mgo.DialWithInfo(dialInfo)
Beachten Sie, dass die Angabe eines einzelnen Replikatsatzmitglieds als Startwert gleichermaßen gültig ist Option:
Addrs: []string{"prefix2.mongodb.net:27017"}
Weitere Einblicke finden Sie im Folgenden Ressourcen:
Update:
Alternativ: Die Methode mgo.ParseURL() kann zur Interpretation der MongoDB Atlas-URI-Zeichenfolge verwendet werden. Derzeit fehlt jedoch die Unterstützung für SSL.
Um dieses Problem zu umgehen, können Sie den Parameter ssl=true vor dem Parsen entfernen:
// URI without ssl=true var mongoURI = "mongodb://username:[email protected],prefix2.mongodb.net,prefix3.mongodb.net/dbName?replicaSet=replName&authSource=admin" dialInfo, err := mgo.ParseURL(mongoURI) // Subsequent code remains similar to the previous example.
Das obige ist der detaillierte Inhalt vonWarum schlägt meine Golang-mgo-Verbindung zu MongoDB Atlas ständig mit der Fehlermeldung „Kein erreichbarer Server' fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!