Ubuntu에서 Go의 MongoDB 클라우드 데이터베이스에 연결
최근 개발자가 Go를 사용하여 MongoDB Atlas 데이터베이스에 연결을 시도하는 동안 문제가 발생했습니다. 우분투 시스템에서. 다음 코드 조각이 연결에 사용되었습니다.
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") }
이 코드는 이전에 Windows 시스템에서 작동했지만 Ubuntu에서 실행하면 오류가 발생했습니다.
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
해결 방법
"cannot unmarshal DNS message"라는 오류 메시지는 MongoDB Go 드라이버이지만 Go 버전 1.11.x에서 DNS 메시지가 처리되는 방식과 관련된 문제입니다. 특히 Go 1.11의 DNS 메시지 구문 분석 논리 업데이트에서는 RFC-2782를 더욱 엄격하게 준수하여 도메인 이름 압축을 사용하는 DNS 응답에서 오류가 발생했습니다.
해결 방법
이 문제를 해결하기 위해 개발자는 다음 해결 방법을 구현할 수 있습니다.
또는 개발자는 최신 버전의 Go로 업그레이드하는 것을 고려할 수 있습니다. (예: 1.12 또는 1.13) 이 문제가 해결되었습니다.
위 내용은 내 Go 애플리케이션이 Ubuntu의 MongoDB Atlas에 연결할 수 없는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!