Verwendung von Golang-Treibern zur Verbindung mit MongoDB Atlas mit neuer URL-Syntax
Beim Herstellen einer Verbindung mit MongoDB Atlas mithilfe von Golang-Treibern können Probleme aufgrund von auftreten die Verwendung der neuen URL-Syntax, die in MongoDB 3.6 eingeführt wurde. Dieser Artikel untersucht die möglichen Fallstricke und bietet Lösungen.
Fehler: Es wird keine Verbindung hergestellt
Der vorgestellte Code versucht, eine Verbindung mithilfe von tls.Dial("tcp" herzustellen. , addr.String(), tlsConfig) Funktion. Es wird jedoch kein Timeout angegeben, was dazu führen kann, dass der Code auf unbestimmte Zeit blockiert. Um dieses Problem zu beheben, legen Sie das Timeout explizit mit dialInfo.Timeout = time.Duration(30) fest.
Fehler: Keine erreichbaren Server
Bei Verwendung der Funktion mgo.DialWithInfo Beim SCRAM-Mechanismus kann ein Fehler auftreten, der darauf hinweist, dass keine erreichbaren Server gefunden wurden. Dies liegt daran, dass der globalsign/mgo-Treiber derzeit den SRV-Verbindungszeichenfolgen-URI nicht unterstützt. Alternativ können Sie das Nicht-SRV-Verbindungs-URI-Format (MongoDB v3.4) verwenden oder stattdessen den Mongo-Go-Treiber verwenden, der den SRV-Verbindungs-URI unterstützt.
Beispielcode mit Mongo-go -driver
Um die Verbindung mithilfe des Mongo-Go-Treibers mit dem SRV-Verbindungs-URI zu demonstrieren, betrachten Sie den folgenden Code Snippet:
mongoURI := "mongodb+srv://admin:[email protected]/dbname?ssl=true&retryWrites=true" client, err := mongo.NewClient(options.Client().ApplyURI(mongoURI)) if err != nil { log.Fatal(err) } ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second) defer cancel() err = client.Connect(ctx) defer client.Disconnect(ctx) if err != nil { log.Fatal(err) }
Dieses Beispiel ist kompatibel mit der aktuellen Version von mongo-go-driver, v1.0.0.
Das obige ist der detaillierte Inhalt vonWie kann ich mit Golang-Treibern und der neuen URL-Syntax erfolgreich eine Verbindung zu MongoDB Atlas herstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!