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
Libérer: 2024-12-11 01:33:09
original
998 Les gens l'ont consulté

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
}
Copier après la connexion

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)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal