Maison >développement back-end >Golang >Comment résoudre l'erreur « Aucun serveur accessible » lors de la connexion à MongoDB Atlas avec le pilote mgo de Go ?

Comment résoudre l'erreur « Aucun serveur accessible » lors de la connexion à MongoDB Atlas avec le pilote mgo de Go ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-11 01:33:09930parcourir

How to Resolve the

Connexion à MongoDB Atlas avec Go mgo : résolution du problème « Aucun serveur accessible »

Lors de la tentative de connexion à un jeu de réplicas MongoDB Atlas à l'aide le pilote mgo pour Go, vous pouvez rencontrer l'erreur persistante « aucun serveur accessible ». Ce problème peut survenir même si vous parvenez à vous connecter avec d'autres langues en utilisant la même chaîne de connexion.

La cause première de ce problème réside souvent dans une configuration manquante ou incorrecte des paramètres de connexion SSL. Pour établir une connexion sécurisée avec MongoDB Atlas, vous devez utiliser une configuration TLS. Voici un extrait de code qui montre comment configurer votre connexion pour SSL :

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
}

Solution alternative :

Une autre option consiste à utiliser la méthode ParseURL pour analyser MongoDB. Chaîne URI Atlas. Cependant, cette méthode ne prend actuellement pas en charge SSL (mgo.V2 PR:304). Une solution de contournement consiste à supprimer la ligne "ssl=true" de l'URI avant l'analyse.

// 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)

En suivant ces étapes, vous pouvez vous connecter avec succès à MongoDB Atlas à l'aide du pilote mgo et résoudre le problème "aucun serveur accessible". "problème.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn