본문 바로가기
IT/DB

우분투 18.04 LTS MongoDB 설치 및 설정, 관리자 계정 추가 정리본

우분투 18.04LTS MongoDB 설치하기는 긴말이 필요없다.

사실 이 모든 과정은 아래 MongoDB 제공자 사이트에서 친절하게 설명되어  있다.

https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
 

Install MongoDB Community Edition on Ubuntu — MongoDB Manual

Install MongoDB > Install MongoDB Community Edition > Install MongoDB Community Edition on Linux MongoDB AtlasMongoDB Atlas is a hosted MongoDB service option in the cloud which requires no installation overhead and offers a free tier to get started.Use th

docs.mongodb.com

1. MongoDB 설치

그냥 실제로 설치한 로그 내용을 그대로 올려놔 본다.  

사용한 명령어만 대충 뽑아보면 아래와 같다. 

 

$ sudo apt install curl
$ curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
$ wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
$ sudo apt-get install -y mongodb-org
$ sudo systemctl start mongod
$ sudo systemctl daemon-reload
$ sudo systemctl status mongod
$ sudo systemctl enable mongod
$ sudo systemctl stop mongod
$ sudo systemctl restart mongod


twmini@twmini-ThinkCentre-M600:~$ sudo apt install curl
[sudo] twmini의 암호: 
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
다음의 추가 패키지가 설치될 것입니다 :
  libcurl4 libssl1.1
다음 새 패키지를 설치할 것입니다:
  curl libcurl4
다음 패키지를 업그레이드할 것입니다:
  libssl1.1
1개 업그레이드, 2개 새로 설치, 0개 제거 및 551개 업그레이드 안 함.
378 k바이트/1,679 k바이트 아카이브를 받아야 합니다.
이 작업 후 1,585 k바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까? [Y/n] 
받기:1 http://kr.archive.ubuntu.com/ubuntu bionic-updates/main amd64 libcurl4 amd64 7.58.0-2ubuntu3.13 [219 kB]
받기:2 http://kr.archive.ubuntu.com/ubuntu bionic-updates/main amd64 curl amd64 7.58.0-2ubuntu3.13 [159 kB]
내려받기 378 k바이트, 소요시간 2초 (208 k바이트/초)
패키지를 미리 설정하는 중입니다...
(데이터베이스 읽는중 ...현재 155142개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack .../libssl1.1_1.1.1-1ubuntu2.1~18.04.9_amd64.deb ...
Unpacking libssl1.1:amd64 (1.1.1-1ubuntu2.1~18.04.9) over (1.1.0g-2ubuntu4.3) ...
Selecting previously unselected package libcurl4:amd64.
Preparing to unpack .../libcurl4_7.58.0-2ubuntu3.13_amd64.deb ...
Unpacking libcurl4:amd64 (7.58.0-2ubuntu3.13) ...
Selecting previously unselected package curl.
Preparing to unpack .../curl_7.58.0-2ubuntu3.13_amd64.deb ...
Unpacking curl (7.58.0-2ubuntu3.13) ...
Processing triggers for libc-bin (2.27-3ubuntu1) ...
libssl1.1:amd64 (1.1.1-1ubuntu2.1~18.04.9) 설정하는 중입니다 ...
Checking for services that may need to be restarted...done.
Checking for services that may need to be restarted...done.
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
libcurl4:amd64 (7.58.0-2ubuntu3.13) 설정하는 중입니다 ...
curl (7.58.0-2ubuntu3.13) 설정하는 중입니다 ...
Processing triggers for libc-bin (2.27-3ubuntu1) ...
twmini@twmini-ThinkCentre-M600:~$ curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
OK
twmini@twmini-ThinkCentre-M600:~$ wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
OK
twmini@twmini-ThinkCentre-M600:~$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse
twmini@twmini-ThinkCentre-M600:~$ sudo apt-get update
받기:1 http://dl.google.com/linux/chrome/deb stable InRelease [1,811 B]
받기:2 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]                                               
무시:3 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 InRelease                                                
받기:4 http://dl.google.com/linux/chrome/deb stable/main amd64 Packages [1,081 B]                                          
기존:5 http://kr.archive.ubuntu.com/ubuntu bionic InRelease                                                                
받기:6 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 Release [5,391 B]                                        
받기:7 http://kr.archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]                                              
받기:8 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 Release.gpg [801 B]                   
받기:9 http://security.ubuntu.com/ubuntu bionic-security/main amd64 DEP-11 Metadata [48.5 kB]              
받기:10 http://kr.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]                                           
받기:11 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4/multiverse arm64 Packages [8,856 B]                     
받기:12 http://security.ubuntu.com/ubuntu bionic-security/universe amd64 DEP-11 Metadata [60.4 kB]                         
받기:13 http://security.ubuntu.com/ubuntu bionic-security/multiverse amd64 DEP-11 Metadata [2,464 B]                       
받기:14 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4/multiverse amd64 Packages [12.7 kB]                     
받기:15 http://kr.archive.ubuntu.com/ubuntu bionic-updates/main i386 Packages [1,288 kB]
받기:16 http://kr.archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [2,070 kB]
받기:17 http://kr.archive.ubuntu.com/ubuntu bionic-updates/main amd64 DEP-11 Metadata [294 kB]
받기:18 http://kr.archive.ubuntu.com/ubuntu bionic-updates/universe i386 Packages [1,567 kB]
받기:19 http://kr.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 Packages [1,735 kB]
받기:20 http://kr.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 DEP-11 Metadata [289 kB]
받기:21 http://kr.archive.ubuntu.com/ubuntu bionic-updates/multiverse amd64 DEP-11 Metadata [2,468 B]
받기:22 http://kr.archive.ubuntu.com/ubuntu bionic-backports/universe amd64 DEP-11 Metadata [9,292 B]
내려받기 7,650 k바이트, 소요시간 8초 (1,014 k바이트/초)                                                                    
패키지 목록을 읽는 중입니다... 완료
twmini@twmini-ThinkCentre-M600:~$ sudo apt-get install -y mongodb-org
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
다음의 추가 패키지가 설치될 것입니다 :
  mongodb-database-tools mongodb-org-database-tools-extra mongodb-org-mongos mongodb-org-server mongodb-org-shell
  mongodb-org-tools
다음 새 패키지를 설치할 것입니다:
  mongodb-database-tools mongodb-org mongodb-org-database-tools-extra mongodb-org-mongos mongodb-org-server
  mongodb-org-shell mongodb-org-tools
0개 업그레이드, 7개 새로 설치, 0개 제거 및 551개 업그레이드 안 함.
102 M바이트 아카이브를 받아야 합니다.
이 작업 후 202 M바이트의 디스크 공간을 더 사용하게 됩니다.
받기:1 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4/multiverse amd64 mongodb-database-tools amd64 100.3.1 [52.7 MB]
받기:2 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4/multiverse amd64 mongodb-org-shell amd64 4.4.6 [13.3 MB]
받기:3 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4/multiverse amd64 mongodb-org-server amd64 4.4.6 [20.6 MB]
받기:4 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4/multiverse amd64 mongodb-org-mongos amd64 4.4.6 [15.9 MB]
받기:5 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4/multiverse amd64 mongodb-org-database-tools-extra amd64 4.4.6 [7,716 B]
받기:6 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4/multiverse amd64 mongodb-org-tools amd64 4.4.6 [2,892 B] 
받기:7 https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4/multiverse amd64 mongodb-org amd64 4.4.6 [3,524 B]       
내려받기 102 M바이트, 소요시간 7초 (15.3 M바이트/초)                                                                       
Selecting previously unselected package mongodb-database-tools.
(데이터베이스 읽는중 ...현재 155156개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack .../0-mongodb-database-tools_100.3.1_amd64.deb ...
Unpacking mongodb-database-tools (100.3.1) ...
Selecting previously unselected package mongodb-org-shell.
Preparing to unpack .../1-mongodb-org-shell_4.4.6_amd64.deb ...
Unpacking mongodb-org-shell (4.4.6) ...
Selecting previously unselected package mongodb-org-server.
Preparing to unpack .../2-mongodb-org-server_4.4.6_amd64.deb ...
Unpacking mongodb-org-server (4.4.6) ...
Selecting previously unselected package mongodb-org-mongos.
Preparing to unpack .../3-mongodb-org-mongos_4.4.6_amd64.deb ...
Unpacking mongodb-org-mongos (4.4.6) ...
Selecting previously unselected package mongodb-org-database-tools-extra.
Preparing to unpack .../4-mongodb-org-database-tools-extra_4.4.6_amd64.deb ...
Unpacking mongodb-org-database-tools-extra (4.4.6) ...
Selecting previously unselected package mongodb-org-tools.
Preparing to unpack .../5-mongodb-org-tools_4.4.6_amd64.deb ...
Unpacking mongodb-org-tools (4.4.6) ...
Selecting previously unselected package mongodb-org.
Preparing to unpack .../6-mongodb-org_4.4.6_amd64.deb ...
Unpacking mongodb-org (4.4.6) ...
mongodb-org-shell (4.4.6) 설정하는 중입니다 ...
mongodb-org-database-tools-extra (4.4.6) 설정하는 중입니다 ...
mongodb-database-tools (100.3.1) 설정하는 중입니다 ...
mongodb-org-mongos (4.4.6) 설정하는 중입니다 ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
mongodb-org-tools (4.4.6) 설정하는 중입니다 ...
mongodb-org-server (4.4.6) 설정하는 중입니다 ...
시스템 사용자 `mongodb' (122) 추가 ...
새로운 사용자 `mongodb' (122) 을(를) 그룹 `nogroup'(으)로 추가 ...
홈 디렉토리 '/home/mongodb' 을(를) 만들지 않습니다.
그룹 `mongodb' (GID 127) 추가 ...
완료.
'mongodb' 사용자를 'mongodb' 그룹에 추가 중...
사용자 mongodb을(를) mongodb 그룹에 등록 중
완료.
mongodb-org (4.4.6) 설정하는 중입니다 ...
twmini@twmini-ThinkCentre-M600:~$ ps --no-headers -o comm 1
systemd
twmini@twmini-ThinkCentre-M600:~$ sudo systemctl start mongod
twmini@twmini-ThinkCentre-M600:~$ sudo systemctl daemon-reload
twmini@twmini-ThinkCentre-M600:~$ sudo systemctl status mongod
● mongod.service - MongoDB Database Server
   Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
   Active: active (running) since Fri 2021-05-28 11:06:09 KST; 21s ago
     Docs: https://docs.mongodb.org/manual
 Main PID: 10619 (mongod)
   CGroup: /system.slice/mongod.service
           └─10619 /usr/bin/mongod --config /etc/mongod.conf

 5월 28 11:06:09 twmini-ThinkCentre-M600 systemd[1]: Started MongoDB Database Server.
twmini@twmini-ThinkCentre-M600:~$ sudo systemctl enable mongod
Created symlink /etc/systemd/system/multi-user.target.wants/mongod.service → /lib/systemd/system/mongod.service.
twmini@twmini-ThinkCentre-M600:~$ sudo systemctl restart mongod
twmini@twmini-ThinkCentre-M600:~$ sudo systemctl stop mongod
twmini@twmini-ThinkCentre-M600:~$ sudo systemctl restart mongod
twmini@twmini-ThinkCentre-M600:~$ 
twmini@twmini-ThinkCentre-M600:~$ mongo
MongoDB shell version v4.4.6
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("83405e00-9c8b-4655-85d5-7281b30fee56") }
MongoDB server version: 4.4.6
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
	https://docs.mongodb.com/
Questions? Try the MongoDB Developer Community Forums
	https://community.mongodb.com
---
The server generated these startup warnings when booting: 
        2021-05-28T11:07:08.674+09:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem
        2021-05-28T11:07:11.806+09:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
---
---
        Enable MongoDB's free cloud-based monitoring service, which will then receive and display
        metrics about your deployment (disk utilization, CPU, operation statistics, etc).

        The monitoring data will be available on a MongoDB website with a unique URL accessible to you
        and anyone you share the URL with. MongoDB may use this information to make product
        improvements and to suggest MongoDB products and deployment options to you.

        To enable free monitoring, run the following command: db.enableFreeMonitoring()
        To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---
> exit
bye
twmini@twmini-ThinkCentre-M600:~$ 

2. 외부 연결 bind IP 설정하기

(추가) 아래 같은 글을 올려뒀는데, 설치가 끝난 후에 외부 접속을 위해서 bind_ip 값을 바꿔줘야 한다.

2021.04.30 - [IT/DB] - 우분투 18.04 MongoDB 설치 및 구성
 

우분투 18.04 MongoDB 설치 및 구성

설치 및 설정은 다른데 볼 필요 없이 아래 글 그대로 따라하면 된다. coterie.tistory.com/20 우분투 18.04 MongoDB 설치 및 구성 1. MongoDB 설치하기 1. 공개키 가져오기 # curl -fsSL https://www.mongodb.org/..

wiznxt.tistory.com

새로 설치하고는 우분투 시스템에 바인딩 되어 있는 모든 IP 에서 접속이 되도록 설정을 아래와 같이 해 주었다.

twmini@twmini-ThinkCentre-M600:~$ sudo vi /etc/mongod.conf

# 파일 내용에서 아래 bindIp 부분을 수정
# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: 27017
#  bindIp: 127.0.0.1
  bindIp: ::, 0.0.0.0

이제 외부에서 접속이 된다. 아래와 같이 IP로 접속을 시도해 보니 성공이 되네. DB 서버 아이피가 192.168.0.15 이다.

3. 관리자 계정 추가

아래 글 참고해서 추가하자

2021.05.09 - [IT/DB] - MongoDB 관리자 계정 추가 권한 설정 방법 - db 쓰고 읽기
 

MongoDB 관리자 계정 추가 권한 설정 방법 - db 쓰고 읽기

무엇이 이렇게 어렵다냐~~ 그냥 admin 권한을 주고 쓰도록만 해주자. 나중에 권한별로 사용자 관리를 다시 하더라도. 검색을 하다보니, 대부분 사용자 관리를 위한 admin을 설정하는 방법이 나와 있

wiznxt.tistory.com

여기도 로그 내용을 그대로 올려둔다. 나중에 확인할 수 있도록 남겨두자.

twmini@twmini-ThinkCentre-M600:~$ mongo
MongoDB shell version v4.4.6
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("fa7d5f60-474c-4e46-a811-174b942f7973") }
MongoDB server version: 4.4.6
---
The server generated these startup warnings when booting: 
        2021-05-28T11:36:14.115+09:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem
        2021-05-28T11:36:17.140+09:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
---
> use admin
switched to db admin
> db.createUser( 
... { 
... user: "admin", 
... pwd: "원하는패스워드를넣으세요", 
... roles: [ "userAdminAnyDatabase", "dbAdminAnyDatabase", "readWriteAnyDatabase" ]
... } 
... )
Successfully added user: {
	"user" : "admin",
	"roles" : [
		"userAdminAnyDatabase",
		"dbAdminAnyDatabase",
		"readWriteAnyDatabase"
	]
}
> 

직접 쉘을 연결하지 않고, 그냥 윈도우에 설치된 DBCompass 를 이용해서 바로 할 수도 있네. 쉘 기능이 beta로 추가되어 있다.

 MongoDBCompass 툴에서 바로 지원하는 Mongosh beta 기능

 

이제 다시 설정파일을 열어서 인증 방법을 추가하고, mongo 데몬을 재 실행한다.

twmini@twmini-ThinkCentre-M600:~$ sudo vi /etc/mongod.conf 
------------------------------------------------ 
#security: 
security: 
	authorization: enabled
------------------------------------------------
# 수정후

twmini@twmini-ThinkCentre-M600:~$ sudo systemctl restart mongod

이후에는 그냥 접속을 하면 아래와 같이 인증 에러가 난다. (원하는 바다 :) )

MongoDB Compass 외부 접속 오류

이제 connection string 을 아래와 같이 인증 정보를 같이 넣어줘야 접속이 정상으로 된다.

mongodb://admin:패스워드@192.168.0.15:27017/?authSource=admin&readPreference=primary&appname=MongoDB%20Compass&ssl=false

MongoDB 접속 성공

BJ.

수중 계단 한걸음씩 올라가다 보면

Francesco Ungaro 님의 사진, 출처: Pexels