이 페이지에서는 MongoDB Shell을 사용하여 MongoDB 배포서버에 연결하는 방법을 설명합니다. MongoDB Atlas 클라우드 호스팅 배포서버, 로컬 배포서버 또는 MongoDB Shell을 이용하여 다른 원격 호스트에 연결할 수 있습니다.
전제 조건
MongoDB Shell을 사용하려면 연결할 MongoDB deployment가 있어야 합니다.
무료 클라우드 호스팅 배포서버의 경우 MongoDB Atlas를 사용할 수 있습니다.
로컬 MongoDB 배포서버를 실행하는 방법을 알아보려면 MongoDB 설치를 참조하세요.
지원되는 MongoDB 버전
MongoDB Shell 사용하여 MongoDB 버전 7.0 이상에 연결할 수 있습니다.
설치 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(을)를 프로그래밍 방식으로 사용하려면 이 옵션을 사용합니다.
팁
배포서버에서 인증을 시행하려면 액세스 관리 활성화를 참조하세요.
MongoDB 배포에 대한 액세스를 프로비저닝하려면 데이터베이스 사용자를 참조하세요.
OpenID Connect로 연결
OpenID 연결을 사용하여 배포서버에 연결하려면 --authenticationMechanism 옵션을 사용하고 이를 MONGODB-OIDC로 설정합니다. mongosh가 ID 제공자의 로그인 정보를 입력하는 브라우저로 리디렉션됩니다.
참고
기본값 으로 는 ID 제공자 (IdP)에게 및 mongosh 범위를 요청합니다. IdP가 oidc offline_access oidc offline_access와 를 모두 지원하지 않는 경우 는mongosh 해당 범위를 요청 하지 않습니다. IdP가 를 oidc 지원하지만 은 지원하지 않는 offline_access 경우 자주 재인증해야 합니다. 자세히 학습 oidcIdentityProviders 필드를 참조하세요.
예를 들어, 아래 내용은 MONGODB-OIDC를 사용하여 로컬 배포서버에 연결합니다.
mongosh "mongodb://localhost/" --authenticationMechanism MONGODB-OIDC
LDAP로 연결
LDAP를 사용하여 배포서버에 연결하려면 다음을 수행합니다.
--username을security.ldap.authz.queryTemplate또는 구성된security.ldap.userToDNMapping템플릿을 준수하는 사용자 이름으로 설정합니다.--password를 적절한 비밀번호로 설정합니다. 명령줄 옵션에 비밀번호를 지정하지 않으면--passwordmongosh에서 비밀번호를 입력하라는 메시지를 표시합니다.--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 시드 목록 연결 형식을 사용합니다.
연결 문자열에 복제본 세트 이름과 구성원을 명시적으로 지정합니다.
중요
복제본 세트가 Docker에서 실행될 때, MongoDB 엔드포인트를 단 하나만 노출할 수 있습니다. 이 경우 복제본 세트를 검색할 수 없으며 directConnection=false를 지정하면 애플리케이션이 해당 복제본 세트에 연결되지 않도록 할 수 있습니다.
테스트 또는 개발 환경에서 연결 URI에 directConnection=true를 지정하여 복제본 세트에 연결할 수 있습니다. 프로덕션 환경에서 각 MongoDB 인스턴스를 Docker 가상 네트워크 외부에서 액세스할 수 있도록 클러스터를 구성할 것을 권장합니다.
옵션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에 지정된 호스팅하다 모든 작업을 실행하고 mongosh 는 명시적으로 설정하다 설정을 포함한 모든 읽기 기본 설정을 무시합니다.
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 경로에 데이터베이스를 지정하세요. 연결 문자열에 지정되지 않은 경우 기본 데이터베이스는 test 데이터베이스입니다.
예를 들어 로컬 호스트에서 qa 데이터베이스에 연결하려면 아래 명령을 실행합니다.
mongosh "mongodb://localhost:27017/qa"
authSource 연결 옵션을 사용하여 연결 문자열에 인증 데이터베이스를 지정할 수 있습니다. 지정된 경우 클라이언트는 이 데이터베이스를 사용하여 사용자 ID 및 자격 증명을 확인합니다. authSource가 지정되지 않은 경우 연결 문자열에 지정된 기본 데이터베이스로 기본 설정됩니다. authSource와 기본 데이터베이스가 모두 지정되지 않으면 authSource는 admin 데이터베이스로 기본 설정됩니다.
다음 연결 문자열은 기본 데이터베이스를 myDefaultDB로, 인증 데이터베이스를 admin으로 설정합니다.
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017/myDefaultDB?authSource=admin
프록시 설정
프록시 구성으로 연결을 설정하려면 다음 환경 변수를 사용할 수 있습니다.
변수 | 설명 | 예시 | |
|---|---|---|---|
| 데이터베이스 클러스터와 같은 | 다음 예시에서는 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:forwardauthMechanismProperties=CANONICALIZE_HOST_NAME:forwardAndReverseauthMechanismProperties=CANONICALIZE_HOST_NAME:none
mongosh현재zlib압축기만 지원합니다. 아래 압축기는 지원하지 않습니다.zstdsnappy
mongosh2.0.0부터 시작.연결 문자열의 부울 값의 경우:
true또는false중 하나를 사용합니다.true대신1,y,yes,t를 사용할 수 없습니다.false대신-1,0,n,no,f를 사용할 수 없습니다.