>백엔드 개발 >Golang >새로운 URL 구문으로 Golang 드라이버를 사용하여 MongoDB Atlas에 성공적으로 연결하는 방법은 무엇입니까?

새로운 URL 구문으로 Golang 드라이버를 사용하여 MongoDB Atlas에 성공적으로 연결하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-26 19:28:14884검색

How to Successfully Connect to MongoDB Atlas using Golang Drivers with the New URL Syntax?

Golang 드라이버를 사용하여 새로운 URL 구문으로 MongoDB Atlas에 연결

Golang 드라이버를 사용하여 MongoDB Atlas에 연결하는 동안 다음으로 인해 문제가 발생할 수 있습니다. MongoDB 3.6에 도입된 새로운 URL 구문의 사용. 이 문서에서는 잠재적인 위험을 탐색하고 해결책을 제공합니다.

오류: 연결되지 않음

제시된 코드는 tls.Dial("tcp" , addr.String(), tlsConfig) 함수. 그러나 코드가 무기한 차단될 수 있는 시간 제한을 지정하지 않습니다. 이 문제를 해결하려면,ialInfo.Timeout = time.Duration(30).

Error: No Reachable Servers

mgo.DialWithInfo 함수를 사용할 때 시간 제한을 명시적으로 설정하세요. SCRAM 메커니즘을 사용하면 연결할 수 있는 서버를 찾을 수 없다는 오류가 발생할 수 있습니다. 이는 globalsign/mgo 드라이버가 현재 SRV 연결 문자열 URI를 지원하지 않기 때문입니다. 또는 비SRV 연결 URI 형식(MongoDB v3.4)을 사용하거나 대신 SRV 연결 URI를 지원하는 mongo-go-driver 사용을 고려해 보세요.

Mongo-go를 사용하는 샘플 코드 -driver

SRV 연결 URI와 함께 mongo-go-driver를 사용한 연결을 시연하려면 다음 코드를 고려하세요. 조각:

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)
}

이 예는 현재 버전의 mongo-go-driver v1.0.0과 호환됩니다.

위 내용은 새로운 URL 구문으로 Golang 드라이버를 사용하여 MongoDB Atlas에 성공적으로 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.