Fehler beim Herstellen einer Verbindung zur Mongo Cloud-Datenbank in Go unter Ubuntu
Problem
Beim Versuch Stellen Sie mit dem folgenden Code eine Verbindung zu einer Mongo Cloud-Datenbank in Go unter Ubuntu her:
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") }
eine Fehlermeldung erscheint:
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
Lösung
Dieses Problem hängt nicht direkt mit dem Go MongoDB-Treiber zusammen, sondern eher mit einer Änderung in Go Version 1.11.x #10622, die das Problem verschärft hat die Art und Weise, wie SRV-Einträge gemäß RFC-2782 gelesen werden.
Wenn ein autoritativer DNS-Server einen SRV-Eintrag sendet Bei Verwendung der Domänennamenkomprimierung gibt die Funktion net.lookupSRV() einen Fehler mit der Meldung „DNS-Nachricht kann nicht entmarshaliert werden“ aus.
Um dieses Problem zu beheben, ziehen Sie die folgenden Problemumgehungen in Betracht:
Weitere Informationen finden Sie unter GODRIVER-829.
Das obige ist der detaillierte Inhalt vonWarum kann meine Go-Anwendung unter Ubuntu keine Verbindung zu meiner MongoDB-Cloud-Datenbank herstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!