Docs Menu
Docs Home
/
MongoDB 매뉴얼
/

연결 문자열

이 페이지의 내용

  • 호환성
  • MongoDB Atlas 연결 문자열 찾기
  • 자체 호스팅 배포서버의 연결 문자열 찾기
  • 연결 문자열 형식
  • SRV 연결 형식
  • 표준 연결 문자열 형식

➤ 오른쪽 상단의 언어 선택 드롭다운 메뉴를 사용하여 다음 예시의 언어를 설정합니다.


연결 문자열을 사용하여 MongoDB 인스턴스와 다음 대상 간의 연결을 정의할 수 있습니다.

  • 드라이버를 사용해서 연결할 경우의 애플리케이션입니다.

  • MongoDB Compass, MongoDB Shell(mongosh) 등의 도구

연결 문자열을 사용하여 다음 환경에서 호스팅되는 배포에 연결할 수 있습니다.

  • MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스

  • MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전

  • MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전

연결 문자열을 찾으려면 이 단계들을 완료하세요.

Atlas CLI를 사용하여 MongoDB Atlas 연결 문자열을 찾으려면 Atlas CLI에서 설치연결한 후 다음 명령을 실행합니다. <clusterName>을 MongoDB Atlas 클러스터 이름으로 바꾸고 <projectId>를 프로젝트 ID로 바꿉니다.

atlas clusters connectionStrings describe <clusterName> --projectId <projectId>

자세한 내용은 Atlas 클러스터 연결 문자열 설명을 참조하세요.

Atlas UI에서 MongoDB Atlas 연결 문자열을 찾으려면 다음 단계를 따르세요.

1
  1. 아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.

  2. 아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.

  3. 아직 표시되지 않은 경우 사이드바에서 Clusters를 클릭합니다.

    Clusters(클러스터) 페이지가 표시됩니다.

2
  1. 연결하려는 클러스터에 대해 Connect를 클릭합니다.

  2. Choose a Connection Method를 클릭합니다. MongoDB Atlas는 기본적으로 Standard Connection을 선택합니다. 비공개 엔드포인트를 사용하여 연결하려면 Private Endpoint를 선택하세요.

3

애플리케이션에 연결하려면 Drivers를 클릭하세요. 도구를 사용하여 연결하려면 데이터에 액세스하는 데 사용할 도구를 클릭합니다.

4
  1. Drivers를 선택한 경우 드라이버와 버전을 선택합니다. 도구를 선택한 경우 도구를 다운로드하세요.

  2. Connect To Cluster0}을 선택합니다.

  3. 연결 문자열을 복사합니다. 연결 문자열의 <password><username>을 데이터베이스 사용자의 자격 증명으로 바꾸세요.

MongoDB Atlas 연결 문자열은 다음 예시와 유사합니다.

mongosh "mongodb+srv://cluster0.example.mongodb.net myFirstDatabase" --apiVersion 1 --username myDatabaseUser
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@cluster0.example.mongodb.net/
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@cluster0.example.mongodb.net/
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@cluster0.example.mongodb.net/
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@cluster0.example.mongodb.net/?retryWrites=true&w=majority
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@cluster0.example.mongodb.net/?retryWrites=true&w=majority
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@cluster0.example.mongodb.net/
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@cluster0.example.mongodb.net/?retryWrites=true&w=majority
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@cluster0.example.mongodb.net/?retryWrites=true&w=majority
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@cluster0.example.mongodb.net/?retryWrites=true&w=majority
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@cluster0.example.mongodb.net/?retryWrites=true&w=majority
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@cluster0.example.mongodb.net/?retryWrites=true&w=majority
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@cluster0.example.mongodb.net/
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@cluster0.example.mongodb.net/?retryWrites=true&w=majority

자체 호스팅 MongoDB Enterprise 또는 MongoDB Community 배포서버에 연결되어 있는 경우 db.getMongo() 메서드를 실행하여 해당 연결 문자열을 반환하세요.

배포서버에 연결되어 있지 않은 경우에는 사용하려는 연결 유형에 따라 연결 문자열을 정할 수 있습니다. SRV 연결 문자열 구문을 배우려면 SRV Connection Format(SRV 연결 형식)을, 표준 연결 문자열 구문을 배우려면 Standard Connection String Format(표준 연결 문자열 형식)을 참조하세요.

자체 호스팅 연결 문자열은 다음 예시와 유사합니다.

다음 복제본 세트 연결 문자열에는 이러한 요소가 포함되어 있습니다.

  • replicaSet 옵션

  • 복제본 세트 구성에 나열된 mongod 인스턴스의 호스트 이름

  • 액세스 제어 시행을 위해 비밀번호 D1fficultP%40ssw0rd을 사용하여 사용자 myDatabaseUser로 인증합니다.

mongosh "mongodb+srv://mongodb0.example.com/?authSource=admin&replicaSet=myRepl" --apiVersion 1 --username myDatabaseUser
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin&replicaSet=myRepl
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin&replicaSet=myRepl
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin&replicaSet=myRepl
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin&replicaSet=myRepl
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin&replicaSet=myRepl
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?authSource=admin&replicaSet=myRepl
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin&replicaSet=myRepl
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin&replicaSet=myRepl
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin&replicaSet=myRepl
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin&replicaSet=myRepl
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin&replicaSet=myRepl
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin&replicaSet=myRepl
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin&replicaSet=myRepl

사용자 이름 또는 암호에 다음 문자가 포함되어 있는 경우 해당 문자는 퍼센트 인코딩 을 사용하여 변환해야 합니다.

$ : / ? # [ ] @

다음과 같은 샤딩된 클러스터 연결 문자열에는 이러한 요소가 포함됩니다.

  • 연결 문자열의 mongos 호스트

  • 액세스 제어 시행을 위해 비밀번호 D1fficultP%40ssw0rd을 사용하여 사용자 myDatabaseUser로 인증합니다.

mongosh "mongodb+srv://mongos0.example.com/?authSource=admin" --apiVersion 1 --username myDatabaseUser
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com/?authSource=admin
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com/?authSource=admin
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com/?authSource=admin
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com/?authSource=admin
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com/?authSource=admin
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com:27017,mongos1.example.com:27017,mongos2.example.com:27017/?authSource=admin
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com/?authSource=admin
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com/?authSource=admin
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com/?authSource=admin
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com/?authSource=admin
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com/?authSource=admin
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com/?authSource=admin
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com/?authSource=admin

사용자 이름이나 암호에 다음 문자가 포함되어 있는 경우 해당 문자는 퍼센트 인코딩을 사용하여 변환해야 합니다.

$ : / ? # [ ] @

다음 독립형 연결 문자열은 액세스 제어를 시행하기 위해 비밀번호 D1fficultP%40ssw0rd를 사용하여 사용자 myDatabaseUser로 인증합니다.

mongosh "mongodb+srv://mongodb0.example.com/?authSource=admin" --apiVersion 1 --username myDatabaseUser
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin

사용자 이름이나 암호에 다음 문자가 포함되어 있는 경우 해당 문자는 퍼센트 인코딩을 사용하여 변환해야 합니다.

$ : / ? # [ ] @

다음 복제본 세트 연결 문자열에는 이러한 요소가 포함되어 있습니다.

mongosh "mongodb://mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?authSource=admin&replicaSet=myRepl" --apiVersion 1 --username myDatabaseUser
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?authSource=admin&replicaSet=myRepl
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?authSource=admin&replicaSet=myRepl
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?authSource=admin&replicaSet=myRepl
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?authSource=admin&replicaSet=myRepl
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?authSource=admin&replicaSet=myRepl
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?authSource=admin&replicaSet=myRepl
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?authSource=admin&replicaSet=myRepl
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?authSource=admin&replicaSet=myRepl
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?authSource=admin&replicaSet=myRepl
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?authSource=admin&replicaSet=myRepl
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?authSource=admin&replicaSet=myRepl
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?authSource=admin&replicaSet=myRepl
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?authSource=admin&replicaSet=myRepl

사용자 이름이나 암호에 다음 문자가 포함되어 있는 경우 해당 문자는 퍼센트 인코딩을 사용하여 변환해야 합니다.

$ : / ? # [ ] @

다음과 같은 샤딩된 클러스터 연결 문자열에는 이러한 요소가 포함됩니다.

mongosh "mongodb://mongos0.example.com:27017,mongos1.example.com:27017,mongos2.example.com:27017/?authSource=admin" --apiVersion 1 --username myDatabaseUser
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com:27017,mongos1.example.com:27017,mongos2.example.com:27017/?authSource=admin
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com:27017,mongos1.example.com:27017,mongos2.example.com:27017/?authSource=admin
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com:27017,mongos1.example.com:27017,mongos2.example.com:27017/?authSource=admin
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com:27017,mongos1.example.com:27017,mongos2.example.com:27017/?authSource=admin
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com:27017,mongos1.example.com:27017,mongos2.example.com:27017/?authSource=admin
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com:27017,mongos1.example.com:27017,mongos2.example.com:27017/?authSource=admin
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com:27017,mongos1.example.com:27017,mongos2.example.com:27017/?authSource=admin
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com:27017,mongos1.example.com:27017,mongos2.example.com:27017/?authSource=admin
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com:27017,mongos1.example.com:27017,mongos2.example.com:27017/?authSource=admin
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com:27017,mongos1.example.com:27017,mongos2.example.com:27017/?authSource=admin
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com:27017,mongos1.example.com:27017,mongos2.example.com:27017/?authSource=admin
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com:27017,mongos1.example.com:27017,mongos2.example.com:27017/?authSource=admin
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongos0.example.com:27017,mongos1.example.com:27017,mongos2.example.com:27017/?authSource=admin

사용자 이름이나 암호에 다음 문자가 포함되어 있는 경우 해당 문자는 퍼센트 인코딩을 사용하여 변환해야 합니다.

$ : / ? # [ ] @

다음 독립형 연결 문자열은 액세스 제어를 적용합니다.

mongosh "mongodb://@mongodb0.example.com:27017/?authSource=admin" --apiVersion 1 --username myDatabaseUser
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin

사용자 이름이나 암호에 다음 문자가 포함되어 있는 경우 해당 문자는 퍼센트 인코딩을 사용하여 변환해야 합니다.

$ : / ? # [ ] @

연결 string 옵션의 전체 목록은 SRV 연결 형식 또는 표준 연결 string 형식 을 참조하세요. 더 많은 예제는 연결 string 예제를 참조하세요.

다음 형식 중 하나를 사용하여 MongoDB 연결 문자열을 지정할 수 있습니다.

  • SRV 연결 형식: DNS SRV 레코드에 해당하는 호스트 이름이 포함된 연결 문자열입니다. 원하는 드라이버 또는 mongosh로 레코드를 쿼리하면 어떤 호스트에서 mongod 또는 mongos 인스턴스를 실행 중인지 확인할 수 있습니다.

  • 표준 연결 문자열 형식: mongod 인스턴스 또는 mongos 인스턴스를 실행 중인 호스트를 모두 지정하는 연결 문자열입니다.

MongoDB Atlas 클러스터는 온라인 아카이브 에 연결하지 않는 한 SRV 연결 형식 을 사용합니다.

MongoDB는 DNS 구성형 시드 목록을 지원합니다. DNS를 사용하여 가용 서버 목록을 구성하면 배포서버의 유연성이 향상되고, 클라이언트를 재구성하지 않고도 서버를 교대로 변경할 수 있습니다.

SRV URI 연결 체계의 형식은 다음과 같습니다.

mongodb+srv://[username:password@]host[/[defaultauthdb][?options]]

더 많은 예제는 연결 string 예제를 참조하세요.

연결 문자열에 포함되는 구성 요소는 다음과 같습니다.

구성 요소
설명

mongodb:// or mongodb+srv://

표준 연결 형식(mongodb://) 또는 SRV 연결 형식( )의 문자열임을 식별하는 데 필요한mongodb+srv:// 접두사입니다. 각 형식에 학습 보려면 표준 연결 문자열 형식SRV 연결 형식을 참조하세요.

username:password@

선택 사항. 인증 자격 증명.

지정된 경우 클라이언트 는 authSource 에 사용자 인증을 시도합니다. authSource 가 지정되지 않은 경우 클라이언트 는 defaultauthdb 에 사용자 인증을 시도합니다. 그리고 defaultauthdb 이(가) 지정되지 않은 경우 admin 데이터베이스 로 이동합니다.

사용자 이름이나 암호에 다음 문자가 포함되어 있는 경우 해당 문자는 퍼센트 인코딩을 사용하여 변환해야 합니다.

$ : / ? # [ ] @

authSource도 참조하세요.

host[:port]

mongod 인스턴스(또는 샤딩된 클러스터의 경우 mongos 인스턴스)를 실행 중인 호스트(및 선택 가능한 포트 번호). 호스트 이름, IP 주소 또는 UNIX 도메인 소켓을 지정할 수 있습니다. 해당 배포서버 토폴로지에 적합한 수만큼 호스트를 지정하세요.

  • 독립형의 경우 독립형 mongod 인스턴스의 호스트 이름을 지정하세요.

  • 복제본 세트의 경우 복제본 세트 구성에 명시된 대로 mongod 인스턴스의 호스트 이름을 지정하세요.

  • 샤딩된 클러스터의 경우 mongos 인스턴스의 호스트 이름을 지정하세요.

포트 번호를 지정하지 않으면 기본 포트 27017이(가) 사용됩니다.

SRV URI 연결 형식을 사용할 경우 호스트 1개만 지정하고, 포트는 지정하지 않아도 됩니다. 그렇지 않으면 해당 드라이버 또는 mongosh가 구문 분석 오류를 제기하며 DNS 확인을 수행하지 않습니다.

/defaultauthdb

선택 사항. 연결 string 에 username:password@ 인증 자격 증명 이 포함되어 있지만 authSource 옵션이 지정되지 않은 경우 사용할 인증 데이터베이스 입니다.

authSourcedefaultauthdb 이(가) 모두 지정되지 않은 경우 클라이언트 는 admin 데이터베이스 에 대해 지정된 사용자 인증을 시도합니다.

?<options>

선택 사항. 연결별 옵션을 <name>=<value> 쌍으로 지정하는 쿼리 string 입니다. 이러한 옵션에 대한 전체 설명은 연결 string 옵션 을 참조하세요.

이 연결 문자열이 데이터베이스를 지정하지 않는다면 마지막 host 및 옵션 문자열의 첫 문자인 물음표(?) 사이에 슬래시(/)를 지정해야 합니다.

DNS 시드 목록을 활용하려면 표준 mongodb 대신 접두사가 mongodb+srv표준 연결 문자열과 동일한 구문을 사용하세요. +srv는 그 뒤에 붙는 호스트 이름이 DNS SRV 레코드에 해당함을 클라이언트로 나타냅니다. 그런 다음 드라이버 또는 mongosh는 DNS에 레코드를 쿼리하여 mongod 또는 mongos 인스턴스를 실행 중인 호스트를 확인합니다.

참고

+srv 연결 string 수정자를 사용하면 연결에 대해 tls (또는 이에 상응하는 ssl) 옵션이 true 로 자동 설정됩니다. 쿼리 의(또는)(으)로 (또는 이에 상응하는 ssl )tls 옵션을(으)로 명시적으로 설정하여 이 동작을 재정의할 수 false tls=false ssl=false string있습니다.

+srv 형식을 사용하려면 hostname, domaintop-level domain (TLD)을(를) <hostname>.<domain>.<TLD>. 형식으로 지정해야 합니다. 이 표는 자리 표시자가 예시 값에 어떻게 상응하는지를 보여줍니다.

자리 표시자
예시

<hostname>

server

<domain>

example

<TLD>

com

<hostname>.<domain>.<TLD>

server.example.com

이 예시에서는 <hostname>.<domain>.<TLD> 형식을 올바르게 사용하는 DNS 시드 목록 연결 문자열을 보여줍니다. 이 문자열은 비밀번호 D1fficultP%40ssw0rd을(를) 사용하여 사용자 myDatabaseUser(으)로 인증합니다.

mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@server.example.com/

해당 DNS 구성은 다음 내용과 유사합니다.

Record TTL Class Priority Weight Port Target
_mongodb._tcp.server.example.com. 86400 IN SRV 0 5 27317 mongodb1.example.com.
_mongodb._tcp.server.example.com. 86400 IN SRV 0 5 27017 mongodb2.example.com.

개별 SRV 레코드는 _mongodb._tcp.<hostname>.<domain>.<TLD> 형식이어야 합니다.

클라이언트가 시드 목록의 멤버에 연결되는 경우, 이 클라이언트는 연결 대상이 될 수 있는 복제본 세트 멤버의 목록을 검색합니다. 클라이언트는 자체 시드 목록의 DNS 별칭을 사용하는 경우가 많습니다. 이는 호스트가 원본 시드 목록과 다른 서버 목록을 반환할 수 있다는 뜻입니다. 이런 상황이 발생할 경우, 클라이언트는 시드 목록에 나열된 호스트 이름 대신 복제본 세트에서 제공한 호스트 이름을 사용해서 결과 복제본 세트 구성의 호스트 이름을 통해 복제본 세트 멤버에 연결할 수 있게 합니다.

중요

SRV 레코드에서 반환된 호스트 이름은 그 상위 도메인(이 예시에서는 example.com)이 특정 호스트 이름과 동일해야 합니다. 상위 도메인과 호스트 이름이 일치하지 않으면 연결할 수 없습니다.

이 예시에서는 <hostname>이(가) 누락된 DNS 시드 목록 연결 문자열을 보여줍니다. 이는 정확하지 않으며 오류를 유발합니다.

# This connection string is missing the <hostname> and raises a connection error
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@example.com/

DNS 시드 목록 연결 문자열은 표준 연결 문자열과 마찬가지로 옵션을 쿼리 문자열로 지정할 수 있도록 지원합니다. DNS 시드 목록 연결 문자열을 사용하면 TXT 레코드를 통해 다음 옵션을 지정할 수도 있습니다.

  • replicaSet

  • authSource

사용자는 TXT 레코드를 mongod 인스턴스당 1개만 지정할 수 있습니다. DNS에 TXT 레코드가 여러 개 나타나거나 TXT 레코드에 replicaSet 또는 authSource 이외의 옵션이 포함되어 있으면 클라이언트가 오류를 반환합니다.

해당 server.example.com DNS 항목의 TXT 레코드는 다음 내용과 유사합니다.

Record TTL Class Text
server.example.com. 86400 IN TXT "replicaSet=mySet&authSource=authDB"

종합하면, DNS SRV 레코드와 TXT 레코드에 지정된 옵션은 다음과 같은 표준 형식 연결 문자열로 해석됩니다.

mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb1.example.com:27317,mongodb2.example.com:27017/?replicaSet=mySet&authSource=authDB

쿼리 문자열에 옵션을 전달하여 TXT 레코드에서 지정된 옵션을 재정의할 수 있습니다. 다음 예시에서 쿼리 문자열은 위 DNS 항목의 TXT 레코드에서 구성된 authSource 옵션에 대한 재정의를 제공했습니다.

mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@server.example.com/?connectTimeoutMS=300000&authSource=aDifferentAuthDB

authSource에 대한 재정의가 제공되면 표준 형식의 해당 연결 문자열이 다음과 같은 상태가 됩니다.

mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb1.example.com:27317,mongodb2.example.com:27017/?connectTimeoutMS=300000&replicaSet=mySet&authSource=aDifferentAuthDB

참고

연결 string 에서 식별된 호스트 이름에 해당하는 기록이 있는 사용 가능한 DNS가 없는 경우 mongodb+srv 옵션이 실패합니다. +srv 연결 string 수정자를 사용하는 경우 연결에 대해 tls (또는 이에 상응하는 ssl) 옵션이 true 로 설정하다 됩니다. 쿼리 의(또는)(으)로 (또는 이에 상응하는 ssl )tls 옵션을(으)로 명시적으로 설정하여 이 동작을 재정의할 수 false tls=false ssl=false string있습니다.

DNS 시드 목록 연결 형식을 사용하여 mongosh 복제본 세트에 연결하는 예는 mongosh 연결 옵션을 참조하세요.

이 섹션에서는 자체 호스팅된 MongoDB 독립 실행형 배포, 복제본 세트 또는 샤딩된 클러스터에 연결하는 데 사용되는 MongoDB 연결 URI의 표준 형식에 대해 설명합니다.

표준 URI 연결 체계의 형식은 다음과 같습니다.

mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]

더 많은 예제는 연결 string 예제를 참조하세요.

연결 문자열에 포함되는 구성 요소는 다음과 같습니다.

구성 요소
설명

mongodb:// or mongodb+srv://

표준 연결 형식(mongodb://) 또는 SRV 연결 형식( )의 문자열임을 식별하는 데 필요한mongodb+srv:// 접두사입니다. 각 형식에 학습 보려면 표준 연결 문자열 형식SRV 연결 형식을 참조하세요.

username:password@

선택 사항. 인증 자격 증명.

지정된 경우 클라이언트 는 authSource 에 사용자 인증을 시도합니다. authSource 가 지정되지 않은 경우 클라이언트 는 defaultauthdb 에 사용자 인증을 시도합니다. 그리고 defaultauthdb 이(가) 지정되지 않은 경우 admin 데이터베이스 로 이동합니다.

사용자 이름이나 암호에 다음 문자가 포함되어 있는 경우 해당 문자는 퍼센트 인코딩을 사용하여 변환해야 합니다.

$ : / ? # [ ] @

authSource도 참조하세요.

host[:port]

mongod 인스턴스(또는 샤딩된 클러스터의 경우 mongos 인스턴스)를 실행 중인 호스트(및 선택 가능한 포트 번호). 호스트 이름, IP 주소 또는 UNIX 도메인 소켓을 지정할 수 있습니다. 해당 배포서버 토폴로지에 적합한 수만큼 호스트를 지정하세요.

  • 독립형의 경우 독립형 mongod 인스턴스의 호스트 이름을 지정하세요.

  • 복제본 세트의 경우 복제본 세트 구성에 명시된 대로 mongod 인스턴스의 호스트 이름을 지정하세요.

  • 샤딩된 클러스터의 경우 mongos 인스턴스의 호스트 이름을 지정하세요.

포트 번호를 지정하지 않으면 기본 포트 27017이(가) 사용됩니다.

SRV URI 연결 형식을 사용할 경우 호스트 1개만 지정하고, 포트는 지정하지 않아도 됩니다. 그렇지 않으면 해당 드라이버 또는 mongosh가 구문 분석 오류를 제기하며 DNS 확인을 수행하지 않습니다.

/defaultauthdb

선택 사항. 연결 string 에 username:password@ 인증 자격 증명 이 포함되어 있지만 authSource 옵션이 지정되지 않은 경우 사용할 인증 데이터베이스 입니다.

authSourcedefaultauthdb 이(가) 모두 지정되지 않은 경우 클라이언트 는 admin 데이터베이스 에 대해 지정된 사용자 인증을 시도합니다.

?<options>

선택 사항. 연결별 옵션을 <name>=<value> 쌍으로 지정하는 쿼리 string 입니다. 이러한 옵션에 대한 전체 설명은 연결 string 옵션 을 참조하세요.

이 연결 문자열이 데이터베이스를 지정하지 않는다면 마지막 host 및 옵션 문자열의 첫 문자인 물음표(?) 사이에 슬래시(/)를 지정해야 합니다.

돌아가기

국가 및 언어 설정 및 기본 매개변수