본문 바로가기
DBMS

우분투에서 몽고DB 테스트 하기 - mongosh 설치 및 연결

by developer's warehouse 2023. 12. 13.

mongosh는 MongoDB Shell의 약자로, Atlas, 로컬, 또는 다른 원격 호스트에 있는 MongoDB 배포와 상호 작용할 수 있는 JavaScript와 Node.js REPL 환경입니다.

mongosh를 설치하는 방법

mongosh를 설치하는 방법은 다음과 같습니다

아래의 링크에서 mongosh를 설치하는 문서를 제공합니다. 해당 페이지를 따라서 설치하는 법을 알아봅니다.
Install mongosh — MongoDB Shell

 

1. 운영 체제에 맞는 탭을 선택하세요

macOS, Windows, Linux에 대해서 위의 링크에서 Linux 탭을 선택하면 아래에 .deb, .rpm, .tgz이 나타납니다.

 

몽고sh 설치 절차
몽고 sh 설치 패키지 형태

이 글에서는 Linux의 .deb를 기준으로 설명드립니다.

2. 패키지 관리 시스템에서 사용하는 공개키 가져오기

터미널에서 다음 명령을 실행하여 다음 위치에서 MongoDB 공개 GPG 키를 가져옵니다.

wget -qO- https://www.mongodb.org/static/pgp/server-7.0.asc | sudo tee /etc/apt/trusted.gpg.d/server-7.0.asc

다음과 같이 수행됩니다.
~$ wget -qO- https://www.mongodb.org/static/pgp/server-7.0.asc | sudo tee /etc/apt/trusted.gpg.d/server-7.0.asc
[sudo] mongo 암호:
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

mQINBGPILWABEACqeWP/ktugdlWEyk7YTXo3n19+5Om4AlSdIyKv49vAlKtzCfMA
QkZq3mfvjXiKMuLnL2VeElAJQIYcPoqnHf6tJbdrNv4AX2uI1cTsvGW7YS/2WNwJ
C/+vBa4o+yA2CG/MVWZRbtOjkFF/W07yRFtNHAcgdmpIjdWgSnPQr9eIqLuWXIhy
H7EerKsba227Vd/HfvKnAy30Unlsdywy7wi1FupzGJck0TPoOVGmsSpSyIQu9A4Z
uC6TE/NcJHvaN0JuHwM+bQo9oWirGsZ1NCoVqSY8/sasdUc7T9r90MbUcH674YAR
8OKYVBzU0wch4VTFhfHZecKHQnZf+V4dmP9oXnu4fY0/0w3l4jaew7Ind7kPg3yN
hvgAkBK8yRAbSu1NOtHDNiRoHGEQFgct6trVOvCqHbN/VToLNtGk0rhKGOp8kuSF
OJ02PJPxF3/zHGP8n8khCjUJcrilYPqRghZC8ZWnCj6GJVg6WjwLi+hPwNMi8xK6
cjKhRW3eCy5Wcn73PzVBX9f7fSeFDJec+IfS47eNkxunHAOUMXa2+D+1xSWgEfK0
PClfyWPgLIX.....w4jRP+cJhuihH1Gfizo9ktwwoN9Yr
m7vgh+focEEmx8dysS38ApLxKlUEfTsE9bYsClgqyY1yrt3v4IpGbf66yfyBHNgY
sObR3sngDRVbap7PwNyREGsuAFfKr/Dr37HfrjY7nsn3vH7hbDpSBh+H7a0b/chS
mM60aaG4biWpvmSC7uxA/t0gz+NQuC4HL+qyNPUxvyIO+TwlaXfCI6ixazyrH+1t
F7Bj5mVsne7oeWjRrSz85jK3Tpn9tj3Fa7PCDA6auAlPK8Upbhuoajev4lIydNd2
70yO0idm/FtpX5a8Ck7KSHDvEnXpN70imayoB4Fs2Kigi2BdZOOdib16o5F/9cx9
piNa7HotHCLTfR6xRmelGEPWKspU1Sm7u2A5vWgjfSab99hiNQ89n+I7BcK1M3R1
w/ckl6qBtcxz4Py+7jYIJL8BYz2tdreWbdzWzjv+XQ8ZgOaMxhL9gtlfyYqeGfnp
hYW8LV7a9pavxV2tLuVjMM+05ut/d38IkTV7OSJgisbSGcmycXIzxsipyXJVGMZt
MFw3quqJhQMRsA==
=gbRM
-----END PGP PUBLIC KEY BLOCK-----

 

이전 명령은 시스템의 /etc/apt/trusted.gpg.d 폴더에 GPG 키를 쓰고 터미널에 키를 인쇄합니다. 터미널에 인쇄된 키를 복사하거나 저장할 필요는 없습니다.
아마 mongodb를 설치하였다면, 문제없이 동작할 텐데 혹시, gnupg가 설치되지 않았다는 오류가 표시되면 다음 단계를 수행하시면 됩니다.

다음 명령을 사용하여 gnupg 및 필요한 라이브러리를 설치한 후 위의 명령을 재수행 해서 GPG 키를 가져옵니다.

sudo apt-get install gnupg

 

3. MongoDB용 list 파일 만들기

사용 중인 우분투 버전에 맞는 목록 파일 /etc/apt/sources.list.d/mongodb-org-7.0.list를 만듭니다.

사용 중인 우분투 버전에 해당하는 탭을 클릭합니다. 호스트가 실행 중인 우분투 버전을 잘 모르는 경우, 호스트에서 터미널이나 셸을 열고 lsb_release -dc를 실행합니다.

 

여기에서는 22.04 기준으로 작성합니다.

다음 지침은 우분투 22.04(Jammy) 버전에 대한 설명입니다. 다른 우분투 릴리스의 경우 해당 탭을 클릭하세요.

우분투 22.04(Jammy)용 /etc/apt/sources.list.d/mongodb-org-7.0.list 파일을 생성합니다:

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

 

4. 로컬 패키지 데이터베이스를 재로딩다음 명령을 실행하여 로컬 패키지 데이터베이스를 다시 로드합니다.

sudo apt-get update

 

 

5. mongosh 패키지 설치

mongosh는 OpenSSL을 지원합니다. 시스템의 OpenSSL 설치를 사용하도록 mongosh를 구성할 수도 있습니다.
포함된 OpenSSL 라이브러리와 함께 안정적인 최신 버전의 mongosh를 설치하려면 다음 명령을 수행 하세요.

sudo apt-get install -y mongodb-mongosh

 

OpenSSL 1.1 라이브러리와 함께 몽고시를 설치하려면 다음 명령을 수행 하세요

sudo apt-get install -y mongodb-mongosh-shared-openssl11

 

OpenSSL 3.0 라이브러리와 함께 mongosh를 설치하려면 다음 명령을 수행하세요.

sudo apt-get install -y mongodb-mongosh-shared-openssl3

 

mongosh가 성공적으로 설치되었는지 확인합니다.
mongosh 가 성공적으로 설치되었는지 확인하려면 다음 명령을 실행합니다.

mongosh --version


터미널이 설치한 mongosh 버전으로 응답해야 합니다.

예를들어 저의 경우 다음과 같습니다.

~$ mongosh --version
2.1.1

 

mongosh를 통한 MongoDB 접속


MongoDB 배포에 연결할 수 있는 연결 문자열을 찾으세요. MongoDB는 Atlas라고 하는 클라우드버전과 자체 호스팅 배포의 두 가지 버전을 제공합니다. 저의 경우 자체 호스팅 배포 버전을 테스트 하고 있으므로 이 문서에서는 자체 호스팅 배포시 mongosh를 이용해서 접속하고 제거하는 법을 테스트 합니다.

 

MongoDB에 접속할 연결 문자열 찾기

mongosh를 실행하고 연결 문자열을 찾아야 합니다.

mongosh를 통해 연결 문자열을 찾는 방법은 아래 메소드를 mongosh에서 수행하는 것입니다.

db.getMongo() — MongoDB Manual

몽고 DB에 접속할 연결 문자열 찾기

 

다음과 같이 mongosh을 수행하면 mongodb-shell로 진입합니다. 그 후 db.getMongo()를 실행하면 아래에 주소가 나타납니다.

$ mongosh
Current Mongosh Log ID: 657909fd561deaef4c5619cd
Connecting to:          mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.1.1
Using MongoDB:          7.0.4
Using Mongosh:          2.1.1

For mongosh info see: https://docs.mongodb.com/mongodb-shell/


To help improve our products, anonymous usage data is collected and sent to MongoDB periodically (https://www.mongodb.com/legal/privacy-policy).
You can opt-out by running the disableTelemetry() command.

------
   The server generated these startup warnings when booting
   2023-12-12T16:02:45.583+09:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem
   2023-12-12T16:02:46.615+09:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
   2023-12-12T16:02:46.615+09:00: Journaling works best if /proc/sys/vm/overcommit_memory is set to 0 or 1
   2023-12-12T16:02:46.616+09:00: vm.max_map_count is too low
------

test> db.getMongo()
mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.1.1
test>

 

여기까지 확인 후 연결 주소를 보니 mongodb에 database와 user도 생성 안해 놓은 것 같습니다. mongodb를 설치만 해 놔서 다음 포스팅에서 mongodb 개념에 대해서 알아보겠습니다.

보통 db가 있는 상태에서 연결 스트링은 다음과 같이 나온다 합니다.

다음 stand alone 연결 문자열은 액세스 제어를 적용하기 위해 비밀번호 D1fficultP%40ssw0rd를 사용하여 사용자 myDatabaseUser로 인증하는 예제입니다.

mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com/?authSource=admin
facebook twitter kakaoTalk kakaostory naver band shareLink