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

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