> 데이터 베이스 > 몽고DB > Mongo Shell을 사용하여 MongoDB 데이터베이스에 어떻게 연결합니까?

Mongo Shell을 사용하여 MongoDB 데이터베이스에 어떻게 연결합니까?

Johnathan Smith
풀어 주다: 2025-03-11 18:03:55
원래의
163명이 탐색했습니다.

이 기사는 Mongo Shell을 사용하여 MongoDB 데이터베이스에 연결하는 것을 설명합니다. 호스트, 포트, 인증, SSL 및 읽기 환경 설정의 매개 변수를 포함하여 연결 문자열 형식에 대해 자세히 설명합니다. 인증과 같은 공통 연결 오류 문제 해결

Mongo Shell을 사용하여 MongoDB 데이터베이스에 어떻게 연결합니까?

Mongo Shell을 사용하여 MongoDB 데이터베이스에 연결

mongo Shell을 사용하여 MongoDB 데이터베이스에 연결하려면 일반적으로 연결 문자열을 사용합니다. 가장 간단한 형태는 기본 포트 (27017)에서 실행되는 로컬 MongoDB 인스턴스에 연결됩니다.

 <code class="bash">mongo</code>
로그인 후 복사

이 명령은 MongoDB가 로컬 컴퓨터에서 실행 중이며 기본 포트에서 듣고 있다고 가정합니다. MongoDB 인스턴스가 다른 호스트 또는 포트에서 실행중인 경우 연결 문자열에이를 지정해야합니다. 예를 들어, 포트 27018localhost 에서 실행되는 MongoDB 인스턴스에 연결합니다.

 <code class="bash">mongo localhost:27018</code>
로그인 후 복사

또는 포트 27017mydatabase.example.com 의 원격 서버에서 실행되는 MongoDB 인스턴스에 연결하려면 :

 <code class="bash">mongo mydatabase.example.com</code>
로그인 후 복사

명령을 실행 한 후 Mongo Shell은 연결하고 연결하는 현재 데이터베이스 (일반적으로 admin )를 표시합니다. 그런 다음 use 명령 (예 : use mydatabase )을 사용하여 다른 데이터베이스로 전환 할 수 있습니다. mydatabase.example.com27018 과 같은 자리 표시자를 실제 서버 주소 및 포트 번호로 교체해야합니다.

MongoDB의 공통 연결 문자열 매개 변수

MongoDB 연결 문자열에는 연결을 사용자 정의하기 위해 다양한 매개 변수가 포함될 수 있습니다. 다음은 몇 가지 일반적인 것입니다.

  • mongodb://<host>:<port></port></host> : 이것은 호스트와 포트를 지정하는 기본 형식입니다. 포트가 27017 인 경우 생략 할 수 있습니다.
  • usernamepassword : 인증에 사용 (아래에서 더 자세히 설명). 이들은 종종 연결 문자열 자체의 일부로 포함되지만 보안상의 이유로 환경 변수 또는 전용 인증 메커니즘이 일반적으로 선호됩니다.
  • database : 성공적인 인증시 연결할 기본 데이터베이스를 지정합니다.
  • authSource : 인증 할 데이터베이스를 지정합니다. 인증을 사용할 때는 사용자 자격 증명이 포함 된 데이터베이스를 나타냅니다. 생략하면 database 매개 변수로 지정된 데이터베이스 또는 데이터베이스가 지정되지 않은 경우 admin 에게 기본값이 표시됩니다.
  • authMechanism : 사용할 인증 메커니즘을 지정합니다. 일반적인 메커니즘에는 SCRAM-SHA-1 (권장) 및 MONGODB-CR 포함됩니다. 이것은 안전한 연결에 특히 중요합니다.
  • replicaSet : 고 가용성을 위해 연결하도록 설정된 복제본의 이름을 지정합니다.
  • ssl 또는 tls : 보안 연결을 위해 SSL/TLS 암호화를 활성화합니다. 이것은 생산 환경에 적극 권장됩니다. 인증서 경로와 같은 추가 매개 변수를 제공해야 할 수도 있습니다.
  • readPreference : 읽기 환경 설정을 지정합니다 (예 : primary , secondary , secondaryPreferred nearest ). 이는 복제 세트의 멤버가 읽기 작업에 사용되는 경우에 영향을 미칩니다.

이러한 여러 매개 변수를 통합 한 더 복잡한 연결 문자열은 다음과 같습니다.

 <code class="bash">mongo "mongodb://myuser:mypassword@mydatabase.example.com:27017/?authSource=admin&authMechanism=SCRAM-SHA-1&ssl=true"</code>
로그인 후 복사

자리 표시 자 값을 실제 자격 증명 및 연결 세부 정보로 바꾸는 것을 잊지 마십시오.

몽고 쉘을 사용할 때 연결 오류 문제 해결

연결 오류는 다양한 문제에서 비롯 될 수 있습니다. 다음은 일반적인 문제 및 문제 해결 단계에 대한 분석입니다.

  • 잘못된 호스트 이름 또는 포트 : MongoDB 서버의 호스트 이름 또는 IP 주소 및 포트 번호를 다시 확인하십시오. MongoDB 서버가 실제로 지정된 포트에서 실행되고 청취되고 있는지 확인하십시오. netstat -tulnp | grep mongo 사용하십시오 netstat -tulnp | grep mongo (Linux/MacOS) 또는 유사한 명령을 확인하십시오.
  • 네트워크 연결 문제 : 클라이언트 시스템과 MongoDB 서버 간의 네트워크 연결을 확인하십시오. 관련 포트의 방화벽 차단 연결을 확인하십시오 (일반적으로 27017). 네트워크 도달 가능성을 보장하기 위해 서버를 핑하십시오.
  • 인증 문제 : 데이터베이스에 인증이 필요한 경우 올바른 사용자 이름, 비밀번호 및 authSource 제공해야합니다. 인증 관련 오류는 MongoDB 서버 로그를 확인하십시오.
  • SSL/TLS 구성 문제 : SSL/TLS를 사용하는 경우 클라이언트 및 서버 측 모두에서 인증서가 올바르게 구성되어 있는지 확인하십시오. 인증서 체인 문제 또는 불일치 인증서를 확인하십시오.
  • 드라이버 문제 : 올바른 MongoDB 쉘 버전을 설치하고 MongoDB 서버 버전과 호환되는지 확인하십시오.
  • MongoDB 서버 오류 : MongoDB 서버 로그에서 오류가 있는지 확인하십시오. 이 로그는 종종 연결 문제의 근본 원인에 대한 귀중한 단서를 제공합니다.

오류가 발생하면 오류 메시지를주의 깊게 검사하십시오. 그것은 종종 문제의 본질에 대한 힌트를 제공합니다. 오류 메시지를 기반으로보다 구체적인 문제 해결 지침은 MongoDB 문서를 참조하십시오.

Mongo Shell을 사용하여 보안 MongoDB 데이터베이스에 연결할 때 인증

보안 MongoDB 데이터베이스에 연결하려면 인증 자격 증명을 제공해야합니다. 가장 안전한 방법은 연결 문자열에 자격 증명을 직접 포함시키는 것을 피하는 것입니다. 대신 X.509 인증서와 같은 환경 변수 또는 인증 메커니즘을 사용하십시오. 그러나 데모를 위해 연결 문자열에 자격 증명을 포함시키는 방법을 보여줍니다.

 <code class="bash">mongo "mongodb://myuser:mypassword@mydatabase.example.com:27017/?authSource=admin&authMechanism=SCRAM-SHA-1"</code>
로그인 후 복사

실제 사용자 이름, 암호, 서버 주소 및 인증 데이터베이스로 "myuser" , "mypassword" , "mydatabase.example.com""admin" 각각 교체하십시오. authMechanism=SCRAM-SHA-1 권장 인증 메커니즘을 지정합니다. 사용자 myuser authSource (이 경우 admin 데이터베이스)가 지정된 데이터베이스에 존재하고 대상 데이터베이스에 액세스하는 데 필요한 권한이 있는지 확인하십시오.

문자열에 직접 자격 증명을 저장하는 것은 보안 위험입니다. 생산 환경의 경우 환경 변수 또는 전용 인증 메커니즘과 같은보다 강력한 인증 방법을 활용하여 보안을 향상시킵니다. 데이터베이스 연결 보안에 대한 모범 사례는 항상 공식 MongoDB 문서를 참조하십시오.

위 내용은 Mongo Shell을 사용하여 MongoDB 데이터베이스에 어떻게 연결합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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