Maison > développement back-end > Golang > Pourquoi mon pilote Go mgo ne parvient-il pas à se connecter à l'ensemble de réplicas MongoDB Atlas avec une erreur « Aucun serveur accessible » ?

Pourquoi mon pilote Go mgo ne parvient-il pas à se connecter à l'ensemble de réplicas MongoDB Atlas avec une erreur « Aucun serveur accessible » ?

Susan Sarandon
Libérer: 2024-11-30 09:57:10
original
709 Les gens l'ont consulté

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

Connexion à MongoDB Atlas à l'aide de Golang Mgo : résolution du problème « Aucun serveur accessible pour l'ensemble de réplication »

Question :

Lors de la connexion à un jeu de réplicas sur MongoDB Atlas à l'aide du pilote Golang mgo, un message d'erreur de "aucun serveur accessible" n'est rencontré malgré des connexions réussies avec d'autres langues et le client Mongo standard.

Réponse :

Une version modifiée de l'extrait de code mgo ci-dessous établit avec succès une connexion à MongoDB Atlas en utilisant l'exemple fourni paramètres :

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

Considération :

  • Vous ne pouvez spécifier qu'un seul des membres du jeu de réplicas en tant que graine, par exemple : Addrs : []string {"prefix2.mongodb.net:27017"}.
  • La méthode mgo.ParseURL() ne prend actuellement pas en charge SSL, donc son utilisation pour analyser la chaîne URI MongoDB Atlas nécessite de supprimer au préalable la ligne ssl=true.

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