Maison > développement back-end > Golang > le corps du texte

Pourquoi mon application Go ne peut-elle pas se connecter à ma base de données cloud MongoDB sur Ubuntu ?

Susan Sarandon
Libérer: 2024-11-26 06:36:11
original
434 Les gens l'ont consulté

Why Can't My Go Application Connect to My MongoDB Cloud Database on Ubuntu?

Erreur de connexion à la base de données Mongo Cloud dans Go sur Ubuntu

Problème

Lors de la tentative de connectez-vous à une base de données Mongo Cloud dans Go sur Ubuntu en utilisant ce qui suit code :

func connectToDataBase() {
    ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second)
    defer cancel()
    client, err := mongo.Connect(ctx, options.Client().ApplyURI(dbURL))
    if err != nil {
        log.Fatal("Error connecting to Database: ", err.Error())
    }
    DB = client.Database("storyfactory")
}
Copier après la connexion

un message d'erreur apparaît :

2019/04/13 00:20:37 Error connecting to Database: error parsing uri (mongodb+srv://User:[email protected]/test?retryWrites=true): lookup cluster0-gpxjk.gcp.mongodb.net on 127.0.0.53:53: cannot unmarshal DNS message
exit status 1
Copier après la connexion

Solution

Ce problème n'est pas directement lié au pilote Go MongoDB mais plutôt à un changement dans la version Go 1.11.x #10622 qui a resserré la façon dont les enregistrements SRV sont lus, suite RFC-2782.

Si un serveur DNS faisant autorité envoie un enregistrement SRV en utilisant la compression de nom de domaine, la fonction net.lookupSRV() renvoie une erreur avec le message « impossible de désorganiser le message DNS ».

Pour résoudre ce problème, envisagez les solutions de contournement suivantes :

  • Utilisez MongoDB non-SRV URI : Cela implique de spécifier manuellement l'hôte et le port de la base de données dans l'URI, au lieu d'utiliser l'enregistrement SRV.
  • Mettre à jour /etc/resolv.conf : Remplacer le serveur de noms avec un serveur DNS conforme et/ou public, tel que 1.1.1.1 ou 8.8.8.8.

Pour pour plus d'informations, reportez-vous à GODRIVER-829.

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