배포서버에 연결하기
이 페이지의 내용
- 전제 조건
- 지원되는 MongoDB 버전
- 설치
mongosh
- MongoDB Atlas 배포서버에 연결하기
- Atlas 연결 문자열 받기
- 데이터베이스 자격 증명 설정
- 다음을 사용하여 MongoDB Atlas에 연결
mongosh
- 기본 포트에서 로컬 배포서버 연결
- 기본 포트가 외 포트에서 로컬 배포서버 연결
- 원격 호스트로 배포서버 연결
- 연결 옵션 지정
- 인증으로 연결
- OpenID Connect로 연결
- LDAP로 연결
- 복제본 세트에 연결
- TLS를 사용하여 연결
- 특정 데이터베이스에 연결
- 프록시 설정
- 다른 배포서버에 연결
- 현재 연결 확인
- 배포서버에서 연결 해제
- 정품이 아닌 배포서버
- 제한 사항
이 페이지에서는 MongoDB Shell을 사용하여 MongoDB 배포서버에 연결하는 방법을 설명합니다. MongoDB Atlas 클라우드 호스팅 배포서버, 로컬 배포서버 또는 MongoDB Shell을 이용하여 다른 원격 호스트에 연결할 수 있습니다.
전제 조건
MongoDB Shell을 사용하려면 연결할 MongoDB deployment가 있어야 합니다.
무료 클라우드 호스팅 배포서버의 경우 MongoDB Atlas를 사용할 수 있습니다.
로컬 MongoDB 배포서버를 실행하는 방법을 알아보려면 MongoDB 설치를 참조하세요.
지원되는 MongoDB 버전
MongoDB Shell을 사용하여 4.2 이상 버전의 MongoDB에 연결할 수 있습니다.
설치 mongosh
이 절차는 mongosh
가 이미 설치되어 있다고 가정합니다. mongosh
설치에 대한 자세한 내용은 mongosh
설치를 참조하세요.
MongoDB Atlas 배포서버에 연결하기
셸에서 MongoDB Atlas 배포서버에 직접 연결할 수 있습니다.
Atlas 연결 문자열 받기
MongoDB 셸에서 연결하려면 Atlas 연결 문자열이 필요합니다. Atlas UI에서 Atlas 연결 문자열을 가져올 수 있습니다.
자세한 내용은 MongoDB Atlas 연결 문자열 찾기 가이드에서 확인 가능합니다.
데이터베이스 자격 증명 설정
데이터베이스 사용자를 생성하지 않았다면 사용자 이름과 비밀번호를 설정해야 합니다. Atlas에 연결하려면 Atlas 연결 문자열과 함께 사용자 이름을 전달하세요. 연결 명령을 실행하면 셸에서 비밀번호를 입력하라는 메시지가 표시됩니다.
참고
자세히 알아보기
다른 연결 보안 옵션을 사용하여 mongosh
를 통해 Atlas에 연결할 수 있습니다. 피어링 또는 비공개 엔드포인트 연결 방식으로 비공개 IP에 연결하는 방법에 대한 정보는 mongosh를 통한 Atlas 연결 문서를 참조하세요.
기본 포트에서 로컬 배포서버 연결
기본 포트 27017로 로컬 호스트에서 실행되는 MongoDB 배포서버에 연결하려면 옵션 없이 mongosh
를 실행합니다.
mongosh
이는 다음 명령과 동일합니다.
mongosh "mongodb://localhost:27017"
기본 포트가 외 포트에서 로컬 배포서버 연결
다음 중 하나를 사용하여 로컬 호스트에서 연결할 포트를 지정할 수 있습니다.
선택한 포트의 연결 문자열
--port
명령줄 옵션
예를 들어 다음 명령은 다음에서 실행되는 배포에 연결합니다. localhost 포트 28015:
mongosh "mongodb://localhost:28015"
mongosh --port 28015
원격 호스트로 배포서버 연결
다음 중 하나를 사용하여 원격 호스트와 포트를 지정할 수 있습니다.
선택한 호스트 및 포트가 포함된 연결 문자열.
및
--host
및--port
명령줄 옵션.--port
옵션을 생략하면mongosh
는 기본 포트 27017을 사용합니다.
예를 들어, 다음 명령은 mongodb0.example.com
호스트 및 28015 포트에서 실행 중인 MongoDB 배포서버에 연결합니다.
mongosh "mongodb://mongodb0.example.com:28015"
mongosh --host mongodb0.example.com --port 28015
참고
MongoDB Atlas에 연결
원격 호스트가 Atlas 클러스터인 경우 Atlas UI에서 연결 문자열을 복사할 수 있습니다. 자세한 내용은 Atlas 설명서의 클러스터에 연결하기를 참조하세요.
연결 옵션 지정
다양한 연결 옵션을 지정하여 다양한 유형의 배포에 연결할 수 있습니다.
인증으로 연결
인증이 필요한 MongoDB 배포서버에 연결하려면 --username
및 --authenticationDatabase
옵션을 사용합니다. mongosh
가 비밀번호를 입력하라는 메시지를 표시하며, 입력하는 메시지는 숨겨집니다.
예를 들어 admin
데이터베이스에서 사용자 alice
로 인증하려면 다음 명령을 실행하세요.
mongosh "mongodb://mongodb0.example.com:28015" --username alice --authenticationDatabase admin
연결 명령의 일부로 비밀번호를 제시하려면, 프롬프트를 사용하는 대신 --password
옵션을 사용합니다. 드라이버와 같이 mongosh
(을)를 프로그래밍 방식으로 사용하려면 이 옵션을 사용합니다.
OpenID Connect로 연결
OpenID 연결을 사용하여 배포서버에 연결하려면 --authenticationMechanism
옵션을 사용하고 이를 MONGODB-OIDC
로 설정합니다. mongosh
가 ID 제공자의 로그인 정보를 입력하는 브라우저로 리디렉션됩니다.
예를 들어, 아래 내용은 MONGODB-OIDC
를 사용하여 로컬 배포서버에 연결합니다.
mongosh "mongodb://localhost/" --authenticationMechanism MONGODB-OIDC
LDAP로 연결
LDAP를 사용하여 배포서버에 연결하려면 다음을 수행합니다.
--username
을security.ldap.authz.queryTemplate
또는 구성된security.ldap.userToDNMapping
템플릿을 준수하는 사용자 이름으로 설정합니다.--password
를 적절한 비밀번호로 설정합니다. 명령줄 옵션에 비밀번호를 지정하지 않으면--password
mongosh
에서 비밀번호를 입력하라는 메시지를 표시합니다.--authenticationDatabase
를$external
로 설정합니다. 셸이$external
을 변수로 해석하는 상황을 방지하려면$external
인수를 큰따옴표가 아닌 작은따옴표로 묶어야 합니다.--authenticationMechanism
을PLAIN
로 설정합니다.
경고
LDAP 인증에 일회용 비밀번호를 사용하는 경우 연결 문자열에 연결 문자열 옵션 maxPoolSize=1&srvMaxHosts=1
을 추가하여 연결 실패 가능성을 줄이는 것이 좋습니다.
MongoDB 배포서버의 --host
와 --port
및 배포서버와 관련된 다른 옵션을 포함합니다.
예를 들어, 다음 작업은 LDAP 인증 및 권한 부여를 통해 실행 중인 MongoDB deployment를 인증합니다.
mongosh --username alice@dba.example.com --password --authenticationDatabase '$external' --authenticationMechanism "PLAIN" --host "mongodb.example.com" --port 27017
복제본 세트에 연결
아래 방법 중 한 가지를 사용하여 복제본 세트에 연결할 수 있습니다.
DNS 시드 목록 연결 형식을 사용합니다.
연결 문자열에 복제본 세트 이름과 구성원을 명시적으로 지정합니다.
옵션1: DNS 시드 목록 형식
DNS 시드 목록 연결 형식을 사용하려면 연결 문자열에 +srv
수정자를 포함합니다.
예를 들어 server.example.com
에서 복제본 세트에 연결하려면 아래 명령을 실행합니다.
mongosh "mongodb+srv://server.example.com/"
참고
+srv TLS 동작
+srv
연결 문자열 수정자를 사용하는 경우 MongoDB가 --tls
연결 옵션을 true
로 자동 설정합니다. 이 동작을 재정의하려면 --tls
를 false
로 설정합니다.
옵션2: 연결 문자열에 노드 지정
연결 문자열에서 개별 복제본 세트 노드를 지정할 수 있습니다.
예를 들어 아래 명령을 실행하여 3개 노드로 구성된 replA
라는 복제본 세트에 연결할 수 있습니다.
mongosh "mongodb://mongodb0.example.com.local:27017,mongodb1.example.com.local:27017,mongodb2.example.com.local:27017/?replicaSet=replA"
참고
directConnection 매개변수 자동 추가
연결 문자열에 개별 복제본 세트 노드를 지정한 경우 아래 중 하나 이상에 해당하지 않는 한 mongosh
가 directConnection=true
를 자동으로 추가합니다.
replicaSet
쿼리 매개 변수가 연결 문자열에 존재합니다.연결 문자열이
mongodb+srv://
형식을 사용합니다.연결 문자열에 여러 호스트가 포함된 시드 목록이 포함되어 있습니다.
연결 문자열에 이미
directConnection
매개 변수가 포함되어 있습니다.
directConnection=true
일 경우 모든 작업은 연결 URI가 지정한 호스트에서 실행됩니다.
TLS를 사용하여 연결
다음 작업 중 하나를 실행하여 TLS를 이용해 배포서버에 연결할 수 있습니다.
DNS 시드 목록 연결 형식을 사용합니다.
+srv
연결 문자열 수정자가 해당 연결의tls
옵션을true
(으)로 자동 설정합니다.예를 들어
tls
를 활성화하여 DNS 시드 목록에서 정의한 복제본 세트에 연결하려면 다음 명령을 실행합니다.mongosh "mongodb+srv://server.example.com/" 연결 문자열에서
--tls
옵션을true
로 설정합니다.예를 들어 연결 문자열 옵션으로
tls
를 활성화하려면 아래 명령을 실행합니다.mongosh "mongodb://mongodb0.example.com:28015/?tls=true" --tls
명령줄 옵션을 지정합니다.예를 들어
tls
가 활성화된 상태로 원격 호스트에 연결하려면 아래 명령을 실행합니다.mongosh "mongodb://mongodb0.example.com:28015" --tls
특정 데이터베이스에 연결
특정 데이터베이스에 연결하려면 연결 문자열 URI 경로에 데이터베이스를 지정합니다. URI 경로에 데이터베이스를 지정하지 않으면 test
데이터베이스에 연결됩니다.
예를 들어 로컬 호스트에서 qa
데이터베이스에 연결하려면 아래 명령을 실행합니다.
mongosh "mongodb://localhost:27017/qa"
프록시 설정
프록시 구성으로 연결을 설정하려면 다음 환경 변수를 사용할 수 있습니다.
변수 | 설명 | 예시 | |
---|---|---|---|
| 데이터베이스 클러스터와 같은 | 다음 예시에서는 TLS가 활성화된
| |
|
| 다음 예시에서는
| |
|
| 다음 예시에서는 TLS가 없는
| |
| 모든 연결을 지정된 URL로 프록시합니다. | 다음 예시에서는 URL에 자격 증명이 포함된
| |
| 프록시에서 제외해야 하는 호스트 이름을 쉼표로 구분한 목록입니다. | 다음 예시에서는
|
참고
mongosh
는 다음과 같은 프록시 유형을 지원합니다.
Socks5 프록시
HTTP 프록시
CONNECT 프록시
이전에 나열된 프록시 중 하나로 해석되는 PAC URL
다른 배포서버에 연결
MongoDB Shell에서 이미 배포에 연결되어 있는 경우 다른 배포에 연결하려면 Mongo()
또는 connect() 메서드를 사용하여 MongoDB Shell에서 다른 배포에 연결할 수 있습니다.
이러한 방법을 사용하여 다른 배포에 연결하는 방법을 알아보려면 새 연결 열기를 참조하세요.
현재 연결 확인
현재 데이터베이스 연결을 확인하려면 db.getMongo()
메소드를 사용하세요.
이 메서드는 현재 연결에 적용되는 연결 문자열 URI를 반환합니다.
배포서버에서 연결 해제
배포서버의 연결을 해제하고 mongosh
를 종료하려면 아래 조치 중 하나를 수행합니다:
.exit
이나exit
,exit()
를 입력합니다.quit
또는quit()
를 입력합니다.Ctrl
+D
를 누릅니다.Ctrl
+C
를 두 번 누릅니다.
정품이 아닌 배포서버
정품이 아닌 MongoDB 인스턴스에 연결하면 셸에 경고 메시지가 표시됩니다. 정품이 아닌 인스턴스는 누락되거나, 일관되지 않거나, 불완전한 기능으로 인해 공식 MongoDB 인스턴스와 다르게 작동할 수 있습니다.
제한 사항
Kerberos 인증에서 연결 문자열의
authMechanismProperties=CANONICALIZE_HOST_NAME:true|false
를 허용하지 않습니다. 대신 다음 중 하나를 사용합니다.authMechanismProperties=CANONICALIZE_HOST_NAME:forward
authMechanismProperties=CANONICALIZE_HOST_NAME:forwardAndReverse
authMechanismProperties=CANONICALIZE_HOST_NAME:none
mongosh
현재zlib
압축기만 지원합니다. 아래 압축기는 지원하지 않습니다.zstd
snappy
mongosh
2.0.0부터 시작.연결 문자열의 부울 값의 경우:
true
또는false
중 하나를 사용합니다.true
대신1
,y
,yes
,t
를 사용할 수 없습니다.false
대신-1
,0
,n
,no
,f
를 사용할 수 없습니다.