Ralat Menyambung ke Pangkalan Data Awan Mongo dalam Go on Ubuntu
Masalah
Apabila cuba untuk sambung ke pangkalan data Mongo Cloud dalam Go on Ubuntu menggunakan yang berikut kod:
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") }
mesej ralat muncul:
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
Penyelesaian
Isu ini tidak berkaitan secara langsung dengan pemacu Go MongoDB tetapi sebaliknya kepada perubahan dalam Go versi 1.11.x #10622 yang mengetatkan cara rekod SRV dibaca, mengikuti RFC-2782.
Jika pelayan DNS berwibawa menghantar rekod SRV menggunakan pemampatan nama domain, fungsi net.lookupSRV() melemparkan ralat dengan mesej "tidak boleh menyahmarshal mesej DNS".
Untuk menyelesaikan isu ini, pertimbangkan penyelesaian berikut:
Untuk maklumat lanjut, rujuk GODRIVER-829.
Atas ialah kandungan terperinci Mengapa Aplikasi My Go Tidak Boleh Bersambung ke Pangkalan Data Awan MongoDB Saya di Ubuntu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!