Maison >développement back-end >Golang >Pourquoi mon application Go ne peut-elle pas se connecter à MongoDB Atlas sur Ubuntu et comment puis-je y remédier ?
Connexion à la base de données MongoDB Cloud dans Go sur Ubuntu
Un développeur a récemment rencontré un problème en tentant de se connecter à une base de données MongoDB Atlas à l'aide de Go sur un système Ubuntu. L'extrait de code suivant a été utilisé pour la connexion :
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") }
Ce code fonctionnait auparavant sur une machine Windows, mais lorsqu'il était exécuté sur Ubuntu, il entraînait l'erreur :
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
Résolution
Le message d'erreur "Impossible de désorganiser le message DNS" n'est pas spécifique au pilote MongoDB Go mais plutôt à un problème lié à la manière dont les messages DNS sont gérés dans Go version 1.11.x. Plus précisément, une mise à jour de la logique d'analyse des messages DNS dans Go 1.11 a introduit une conformité plus stricte avec la RFC-2782, entraînant des erreurs avec les réponses DNS qui utilisent la compression de nom de domaine.
Solutions de contournement
Pour résoudre ce problème, les développeurs peuvent mettre en œuvre les solutions de contournement suivantes :
Alternativement, les développeurs peuvent envisager de passer à une version ultérieure de Go (par exemple, 1.12 ou 1.13) où ce problème a été résolu.
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!