내 Go 애플리케이션이 Ubuntu의 MongoDB 클라우드 데이터베이스에 연결할 수 없는 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-26 06:36:11
원래의
435명이 탐색했습니다.

Why Can't My Go Application Connect to My MongoDB Cloud Database on Ubuntu?

Ubuntu의 Go에서 Mongo 클라우드 데이터베이스에 연결하는 중 오류

문제

다음을 사용하여 Ubuntu의 Go에서 Mongo Cloud 데이터베이스에 연결합니다. 코드:

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")
}
로그인 후 복사

오류 메시지가 나타남:

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
로그인 후 복사

해결 방법

이 문제는 Go MongoDB 드라이버와 직접적인 관련이 없지만 SRV 레코드를 읽는 방식을 강화한 Go 버전 1.11.x #10622의 변경보다는 다음과 같습니다. RFC-2782.

권한 있는 DNS 서버가 도메인 이름 압축을 사용하여 SRV 레코드를 보내는 경우 net.lookupSRV() 함수는 "cannot unmarshal DNS message"라는 메시지와 함께 오류를 발생시킵니다.

이 문제를 해결하려면 다음 해결 방법을 고려하십시오.

  • 비SRV MongoDB URI: 여기에는 SRV 레코드를 사용하는 대신 URI에서 데이터베이스의 호스트와 포트를 수동으로 지정하는 작업이 포함됩니다.
  • /etc/resolv.conf 업데이트: 네임서버를 1.1.1.1 또는 1.1.1.1과 같은 호환 및/또는 공용 DNS 서버로 교체합니다. 8.8.8.8.

자세한 내용은 GODRIVER-829를 참조하세요.

위 내용은 내 Go 애플리케이션이 Ubuntu의 MongoDB 클라우드 데이터베이스에 연결할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿