Heim >Backend-Entwicklung >Golang >Wie kann der Fehler „Kein erreichbarer Server' beim Herstellen einer Verbindung zu MongoDB Atlas mit dem mgo-Treiber von Go behoben werden?

Wie kann der Fehler „Kein erreichbarer Server' beim Herstellen einer Verbindung zu MongoDB Atlas mit dem mgo-Treiber von Go behoben werden?

Linda Hamilton
Linda HamiltonOriginal
2024-12-11 01:33:09941Durchsuche

How to Resolve the

Herstellen einer Verbindung zu MongoDB Atlas mit Go mgo: Behebung des Problems „Kein erreichbarer Server“

Beim Versuch, eine Verbindung zu einem MongoDB Atlas-Replikatsatz mit herzustellen Wenn Sie den MGO-Treiber für Go verwenden, tritt möglicherweise der anhaltende Fehler „Kein erreichbarer Server“ auf. Dieses Problem kann auch dann auftreten, wenn Sie über dieselbe Verbindungszeichenfolge erfolgreich eine Verbindung zu anderen Sprachen herstellen können.

Die Hauptursache für dieses Problem liegt häufig in fehlenden oder falschen Konfigurationen der SSL-Verbindungsparameter. Um eine sichere Verbindung mit MongoDB Atlas herzustellen, müssen Sie eine TLS-Konfiguration verwenden. Hier ist ein Codeausschnitt, der zeigt, wie Sie Ihre Verbindung für SSL konfigurieren:

package main

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

func main() {
    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)
    if err != nil {
        // Handle error
    }

    // Use the session to interact with MongoDB Atlas
}

Alternative Lösung:

Eine andere Möglichkeit besteht darin, die ParseURL-Methode zum Parsen der MongoDB zu verwenden Atlas-URI-Zeichenfolge. Allerdings unterstützt diese Methode derzeit kein SSL (mgo.V2 PR:304). Eine Problemumgehung besteht darin, die Zeile „ssl=true“ vor dem Parsen aus dem URI zu entfernen.

// URI without ssl=true
mongoURI := "mongodb://username:[email protected],prefix2.mongodb.net,prefix3.mongodb.net/dbName?replicaSet=replName&authSource=admin"

dialInfo, err := mgo.ParseURL(mongoURI)

// Below part is similar to the previous example.
// ... (remainder of code)

Durch Befolgen dieser Schritte können Sie mithilfe des MGO-Treibers erfolgreich eine Verbindung zu MongoDB Atlas herstellen und das Problem „Kein erreichbarer Server“ beheben "Problem.

Das obige ist der detaillierte Inhalt vonWie kann der Fehler „Kein erreichbarer Server' beim Herstellen einer Verbindung zu MongoDB Atlas mit dem mgo-Treiber von Go behoben werden?. 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