우분투 18.04LTS MongoDB 설치하기는 긴말이 필요없다.
사실 이 모든 과정은 아래 MongoDB 제공자 사이트에서 친절하게 설명되어 있다.
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
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 설치 및 구성
새로 설치하고는 우분투 시스템에 바인딩 되어 있는 모든 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 쓰고 읽기
여기도 로그 내용을 그대로 올려둔다. 나중에 확인할 수 있도록 남겨두자.
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로 추가되어 있다.
이제 다시 설정파일을 열어서 인증 방법을 추가하고, mongo 데몬을 재 실행한다.
twmini@twmini-ThinkCentre-M600:~$ sudo vi /etc/mongod.conf
------------------------------------------------
#security:
security:
authorization: enabled
------------------------------------------------
# 수정후
twmini@twmini-ThinkCentre-M600:~$ sudo systemctl restart mongod
이후에는 그냥 접속을 하면 아래와 같이 인증 에러가 난다. (원하는 바다 :) )
이제 connection string 을 아래와 같이 인증 정보를 같이 넣어줘야 접속이 정상으로 된다.
mongodb://admin:패스워드@192.168.0.15:27017/?authSource=admin&readPreference=primary&appname=MongoDB%20Compass&ssl=false
BJ.
Francesco Ungaro 님의 사진, 출처: Pexels
'IT > DB' 카테고리의 다른 글
MongoDB 기본적인 내용 이해 - 글 소개 (0) | 2021.07.22 |
---|---|
MongoDB - 이미지 파일 같은 바이너리 데이터 입력하기 (0) | 2021.07.15 |
MongoDB 연결된 상태 보기 (0) | 2021.07.01 |
Flask MongoEngine 쿼리 filter() 함수 문자열 - Query Operators (0) | 2021.06.21 |
mongodb - Flask mongoengine 필드 동일값을 그룹으로 묶기 (0) | 2021.06.15 |