> 백엔드 개발 > Golang > 내 Go mgo 드라이버가 \'접근 가능한 서버 없음\' 오류로 인해 MongoDB Atlas 복제본 세트에 연결하지 못하는 이유는 무엇입니까?

내 Go mgo 드라이버가 \'접근 가능한 서버 없음\' 오류로 인해 MongoDB Atlas 복제본 세트에 연결하지 못하는 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-30 09:57:10
원래의
663명이 탐색했습니다.

Why Does My Go mgo Driver Fail to Connect to MongoDB Atlas Replica Set with a

Golang Mgo를 사용하여 MongoDB Atlas에 연결: "복제본 세트에 연결할 수 있는 서버 없음" 문제 해결

질문:

MongoDB의 Replica Set에 접속하는 경우 Golang mgo 드라이버를 사용하는 Atlas에서는 다른 언어 및 일반 Mongo 클라이언트와의 성공적인 연결에도 불구하고 "접근할 수 있는 서버 없음"이라는 오류 메시지가 나타납니다.

답변:

아래 mgo 코드 조각의 수정된 버전은 제공된 예제를 사용하여 MongoDB Atlas에 대한 연결을 성공적으로 설정합니다. 매개변수:

import (
    "gopkg.in/mgo.v2"
    "crypto/tls"
    "net"
)

tlsConfig := &tls.Config{}

dialInfo := &mgo.DialInfo{
    Addrs: []string{"prefix1.mongodb.net:27017", 
                    "prefix2.mongodb.net:27017",
                    "prefix3.mongodb.net:27017"},
    Database: "authDatabaseName",
    Username: "user",
    Password: "pass",
}
dialInfo.DialServer = func(addr *mgo.ServerAddr) (net.Conn, error) {
    conn, err := tls.Dial("tcp", addr.String(), tlsConfig)
    return conn, err
}
session, err := mgo.DialWithInfo(dialInfo)
로그인 후 복사

고려사항:

  • 다음과 같이 복제본 세트 구성원 중 하나만 시드로 지정할 수 있습니다. 주소: []string {"prefix2.mongodb.net:27017"}.
  • mgo.ParseURL() 메서드는 현재 SSL을 지원하지 않으므로 이를 사용하여 MongoDB Atlas URI 문자열을 구문 분석하려면 미리 ssl=true 줄을 제거해야 합니다.

위 내용은 내 Go mgo 드라이버가 \'접근 가능한 서버 없음\' 오류로 인해 MongoDB Atlas 복제본 세트에 연결하지 못하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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