문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

문제 해결

이 페이지의 내용

  • 공개 키를 검색할 때 발생하는 오류
  • 실행 중 오류 sudo apt update
  • 실행 중 오류 sudo apt install -y mongodb-org
  • 다음과 같은 이유로 패키지를 설치할 수 없습니다. dpkg-deb: error
  • mongod 소켓 열기와 관련된 오류를 보고합니다.
  • mongod 데이터 디렉토리와 관련된 오류를 보고합니다.

참고

MongoDB Atlas

MongoDB Atlas 는 클라우드에서 호스팅되는 MongoDB 서비스 옵션으로, 설치 오버헤드가 필요하지 않으며 무료 계층을 제공하여 시작할 수 있습니다.

MongoDB Community Edition 설치 절차의 Import the public key used by the package management system 단계 중에 "gpg: no valid OpenPGP data found." 오류가 발생할 수 있습니다.

문서에 설명된 대로 정확하게 명령을 복사해야 합니다. 작업은 OK로 응답해야 합니다.

MongoDB 공개 GPG 키가 시스템에 있는지 확인하려면 터미널에서 다음 명령을 실행합니다.

sudo apt-key list

출력에는 다음과 유사한 항목이 포함되어야 합니다.

/etc/apt/trusted.gpg
--------------------
pub rsa4096 2018-04-18 [SC] [expires: 2023-04-17]
E162 F504 A20C DF15 827F 718D 4B7C 549A 058F 8B6B
uid [ unknown] MongoDB 5.0 Release Signing Key <packaging@mongodb.com>

MongoDB Community 에디션 설치 절차의 일부로 sudo apt-get update를 실행할 때 다음과 유사한 오류가 하나 이상 발생할 수 있습니다.

W: GPG error: https://repo.mongodb.org/apt/ubuntu <release>/mongodb-org/5.0 Release: \
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 4B7C549A058F8B6B
E: The repository 'https://repo.mongodb.org/apt/ubuntu <release>/mongodb-org/5.0 Release' \
is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

이 오류는 MongoDB Community 에디션 설치 절차의 Import the public key used by the package management system 단계에서 MongoDB 공개 GPG 키가 추가되지 않았음을 나타냅니다.

일반적으로 MongoDB Community Edition 설치 절차의 Import the public key used by the package management system 단계를 반복하면 이 문제가 해결됩니다. 명령 및 키를 문서에 설명된 대로 정확하게 복사해야 합니다.

터미널에서 다음 명령을 실행하여 MongoDB 공개 GPG 키가 시스템에 존재하는지 확인할 수 있습니다.

sudo apt-key list

출력에는 다음과 유사한 항목이 포함되어야 합니다.

--------------------
pub rsa4096 2018-04-18 [SC] [expires: 2023-04-17]
E162 F504 A20C DF15 827F 718D 4B7C 549A 058F 8B6B
uid [ unknown] MongoDB 5.0 Release Signing Key <packaging@mongodb.com>

MongoDB Community Edition 설치 절차의 Create a list file for MongoDB 단계에서 sudo apt install -y mongodb-org를 실행할 때 다음과 유사한 오류가 발생할 수 있습니다.

Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package mongodb-org

이 오류는 /etc/apt/sources.list.d/mongodb-org-5.0.list가 잘못 구성되었거나 누락되었을 수 있음을 나타냅니다.

mongodb-org-5.0.list 파일의 내용을 검토하려면 터미널이나 셸에서 다음 명령을 실행하세요.

cat /etc/apt/sources.list.d/mongodb-org-5.0.list

파일 내용이 위에 링크된 단계의 Ubuntu 버전에 대한 문서와 정확히 일치하지 않으면 파일을 제거하고 Create a list file for MongoDB 단계를 반복합니다. 파일이 없는 경우 해당 단계의 일부로 파일을 생성합니다.

mongodb-org-5.0.list 파일이 존재하고 올바른 컨텐츠가 있는지 확인한 후 sudo apt update를 실행하여 apt 저장소를 업데이트하고 sudo apt install -y mongodb-org를 다시 시도합니다.

mongodb-org 패키지를 설치할 때 다음과 유사한 오류가 발생할 수 있습니다.

dpkg: error processing archive /var/cache/apt/archives/mongodb-org-server_5.0.0_amd64.deb (--unpack):
trying to overwrite '/usr/bin/mongod', which is also in package mongodb-server-core 1:3.6.3-0ubuntu1

이 오류는 공식 MongoDB Inc. mongodb-org 패키지를 설치하기 전에 시스템에 이미 Ubuntu mongodb 패키지가 설치되어 있었음을 나타냅니다. 호스트에 Ubuntu mongodb 패키지가 설치되어 있는지 확인하려면 터미널 또는 셸에서 다음 명령을 실행합니다.

sudo apt list --installed | grep mongo

결과가 다음과 비슷하다면, MongoDB Community 에디션 설치 절차를 다시 시도하기 전에 Ubuntu mongodb 패키지를 제거해야 합니다.

mongodb/bionic,now 1:3.6.3-0ubuntu1 amd64 [installed]
mongodb-clients/bionic,now 1:3.6.3-0ubuntu1 amd64 [installed,automatic]
mongodb-server/bionic,bionic,now 1:3.6.3-0ubuntu1 all [installed,automatic]
mongodb-server-core/bionic,now 1:3.6.3-0ubuntu1 amd64 [installed,automatic]

설치 절차를 다시 시도하기 전에 터미널이나 셸에서 다음 명령을 실행하여 Ubuntu mongodb 패키지를 완전히 제거합니다.

sudo apt remove mongodb
sudo apt purge mongodb
sudo apt autoremove

참고

sudo apt purge mongodb Ubuntu mongodb 패키지에 의해 설치된 모든 기본 구성 파일을 제거합니다. 이러한 구성 파일을 수정했고 해당 수정 사항을 유지하려면 해당 파일을 /home/your-user-name과 같은 다른 디렉토리에 복사합니다.

출력에 mongodb-orgmongodb 바이너리가 혼합되어 있는 경우, Ubuntu mongodb 패키지를 제거하고 퍼지하기 전에 먼저 mongodb-org 패키지에 대해 apt remove, apt purge, apt autoremove를 수행해야 할 수 있습니다. 모든 MongoDB 관련 패키지를 삭제한 후 설치 절차를 다시 시도하세요.

mongod를 시작할 때 Socket is already in use 또는 Failed to unlink socket file 오류가 발생할 수 있습니다. 이러한 오류는 일반적으로 mongod 프로세스에 대해 구성된 포트를 사용하는 다른 프로세스(일반적으로 시스템에서 실행 중인 다른 mongod)를 나타냅니다.

다음 예시에서는 ss 유틸리티를 사용하여 서비스 이름이나 호스트 이름(-n)을 해석하지 않고 LISTEN(-l) 상태의 열려 있는 모든 TCP(-t) 또는 UDP(-u) 소켓과 각 소켓을 사용하는 프로세스(-p)를 나열합니다.

sudo ss -tulpn

다음 부분 출력은 27017 포트에서 수신 대기 중인 mongod 프로세스를 보여 줍니다. 동일한 포트에서 다른 mongod 프로세스를 실행하려고 하면 소켓 오류가 발생합니다.

Netid State Local Address:Port
udp UNCONN 127.0.0.53%lo:53 users:(("systemd-resolve",pid=663,fd=12))
udp UNCONN 10.1.16.87%enp0s3:68 users:(("systemd-network",pid=652,fd=15))
tcp LISTEN 127.0.0.53%lo:53 users:(("systemd-resolve",pid=663,fd=13))
tcp LISTEN 0.0.0.0:22 users:(("sshd",pid=819,fd=3))
tcp LISTEN 192.168.1.15:27017 users:(("mongod",pid=10027,fd=12))
tcp LISTEN 127.0.0.1:27017 users:(("mongod",pid=10027,fd=11))
tcp LISTEN ::]:22 users:(("sshd",pid=819,fd=4))

시스템에 원하는 포트에서 실행 중인 mongod 또는 다른 시스템 프로세스가 있는 경우 기존 프로세스를 종료하거나mongod 프로세스를 위한 새 포트를 선택해야 합니다. net.port 구성 파일 옵션을 지정하여 mongod가 수신 대기하는 포트를 변경할 수 있습니다.

mongod 프로세스 로그에서 다음과 유사한 오류가 발생할 수 있습니다.

Data directory ... not found
Attempted to create lock file on a read-only directory: ...

일반적으로 이러한 오류는 MongoDB 데이터 디렉토리가 존재하지 않거나 mongod에서 액세스할 수 없음을 나타냅니다.

데이터 디렉토리는 구성 파일에서 storage.dbPath 설정으로 지정하거나, 명령줄에서 --dbpath 옵션을 mongod로 설정하여 지정할 수 있습니다.

  • apt 패키지 관리자를 통해 MongoDB를 설치한 경우 기본 /etc/mongod.conf 구성 파일storage.dbPath/var/lib/mongodb 로 설정합니다.

  • 명령줄에서 mongod를 실행하고 --dbpath 옵션을 완전히 생략하는 경우, MongoDB는 /data/db의 기본 --dbpath를 사용합니다.

위의 데이터 디렉토리 경로 중 하나를 사용하든, 구성 파일이나 명령줄에 고유한 경로를 제공하든, mongod를 시작하기 전에 파일 시스템에 데이터 디렉토리가 있는지 확인해야 합니다. mkdir 명령으로 Ubuntu에서 디렉토리를 만들 수 있습니다.

데이터 디렉토리를 적절한 권한 및 소유권 설정으로 구성하여 mongod이(가) 디렉터리 콘텐츠를 읽고, 쓰고, 탐색할 수 있도록 해야 합니다(rwx 사용자 또는 그룹 권한).

mongod을(를) 시작하기 전에 chownchmod을(를) 사용하여 권한을 수정하고 user:group 소유권을 적절히 설정하세요.

서비스형 mongod로 시작하는 사용자(예: sudo systemctl start mongod 또는 sudo service mongod start 사용)는 일반적으로 /etc/mongod.conf의 기본 dbPath 값을 다음과 같이 수정한 경우에만 이러한 오류를 볼 수 있습니다.

  • mongodb 사용자 또는 mongodb 그룹이 디렉토리 및 해당 콘텐츠를 읽고, 쓰고, 실행(rwx)하는 것을 허용하지 않는 디렉토리 또는

  • 존재하지 않는 디렉토리입니다.

서비스 정의를 사용하지 않고 mongod를 시작하는 사용자(예: 터미널을 사용하여 mongod를 실행하는 경우)에게는 일반적으로 다음과 같은 오류가 표시됩니다.

  • dbPath 또는 --dbpath로 지정된 디렉토리가 사용자 또는 사용자가 속한 그룹이 디렉토리 또는 해당 콘텐츠를 읽고, 쓰고, 실행(rwx)하는 것을 허용하지 않거나

  • 지정된 데이터 디렉토리가 존재하지 않습니다.

← .tgz Tarball을 사용하여 Ubuntu에 MongoDB Community 설치