SW/리눅스

Ubuntu 18.04 : MongoDB 설치하는 방법, 예제, 명령어

얇은생각 2020. 12. 11. 07:30
반응형

MongoDB는 무료 오픈 소스 문서 데이터베이스입니다. MySQL 및 PostgreSQL와 같은 기존 테이블 기반 SQL 데이터베이스와는 다른 NoSQL이라는 데이터베이스 제품군에 속합니다.

MongoDB에서 데이터는 문서마다 필드가 다를 수 있는 유연한 JSON 유사 문서에 저장됩니다. 미리 정의된 스키마가 필요하지 않으며, 시간이 지남에 따라 데이터 구조를 변경할 수 있습니다.

이번 포스팅에서는 MongoDB 공식 저장소에서 Ubuntu 18.04 기계에 최신 버전의 MongoDB Community Edition을 설치하고 구성하는 과정을 다룹니다.

 

 

Ubuntu 18.04 : MongoDB 설치하는 방법, 예제, 명령어

 

 

필수 구성 요소

이 튜토리얼을 계속하기 전에 sudo 권한을 가진 사용자로 로그인했는지 확인합니다.

 

 

 

MongoDB 설치

당시 최신 버전의 MongoDB는 버전 4.0입니다.

설치 프로세스를 계속하기 전에 MongoDB 설명서의 Ubuntu에 설치 섹션으로 이동하여 사용 가능한 새 릴리스가 있는지 확인합니다.

다음 단계에서는 Ubuntu 서버에 MongoDB를 설치하는 방법을 설명합니다.

 

1. 다음 명령을 사용하여 시스템에 MongoDB GPG 키를 추가합니다.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4

 

키를 가져오면 다음을 사용하여 MongoDB 저장소를 추가합니다.

sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'

 

add-apt-repository 명령을 찾을 수 없다는 오류 메시지가 표시되면 software-properties-common 패키지를 설치합니다.

이전 버전의 MongoDB를 설치하려면 4.0을 원하는 버전으로 교체합니다.

 

2. 패키지 목록을 업데이트하고 다음을 입력하여 mongodb-org 메타 패키지를 설치합니다.

sudo apt update
sudo apt install mongodb-org

 

 

다음 패키지는 mongodb-org 패키지의 일부로 시스템에 설치됩니다.

- mongodb-org-server : mongod 데몬 및 해당 init 스크립트 및 구성입니다.

- mongodb-org-mongos : mongos 데몬입니다.

- mongodb-org-shell : mongo shell은 MongoDB에 대한 대화형 JavaScript 인터페이스입니다. 명령줄을 통해 관리 작업을 수행하는 데 사용됩니다.

- mongodb-org-tools : 데이터, 통계 및 기타 유틸리티를 가져오고 내보내기 위한 여러 MongoDB 도구를 포함합니다.

 

3. 설치가 완료되면 MongoDB 데몬을 시작하고 다음을 입력하여 부팅 시 시작할 수 있습니다.

sudo systemctl start mongod
sudo systemctl enable mongod

 

 

4. 설치가 성공적으로 완료되었는지 확인하기 위해 mongo 도구를 사용하여 MongoDB 데이터베이스 서버에 연결하고 연결 상태를 인쇄합니다.

mongo --eval 'db.runCommand({ connectionStatus: 1 })'

 

출력은 다음과 같습니다.

MongoDB shell version v4.0.10
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 4.0.10
{
  "authInfo" : {
    "authenticatedUsers" : [ ],
    "authenticatedUserRoles" : [ ]
  },
  "ok" : 1
}

 

확인 필드에 대한 값이 1이면 성공을 나타냅니다.

 

 

 

MongoDB 구성

MongoDB는 YAML 형식 구성 파일인 /etc/mongod.conf를 사용합니다. 이 파일을 편집하여 MongoDB 인스턴스를 구성할 수 있습니다.

대부분의 사용자는 기본 구성 설정으로 충분합니다. 그러나 프로덕션 환경의 경우 다음과 같이 보안 섹션을 해제하고 인증을 사용하는 것이 좋습니다.

# /etc/mongod.conf

security:
  authorization: enabled

 

권한 부여 옵션을 사용하면 데이터베이스 리소스 및 작업에 대한 사용자의 액세스를 제어하는 RBAC(역할 기반 액세스 제어)가 활성화됩니다. 이 선택사항을 사용 불가능으로 설정하면 각 사용자는 모든 데이터베이스에 대한 접근 권한을 가지고 모든 작업을 수행합니다.

MongoDB 구성 파일을 변경한 후 다음을 사용하여 mongod 서비스를 다시 시작합니다.

sudo systemctl restart mongod

 

MongoDB 4.0에서 사용할 수 있는 구성 옵션에 대한 자세한 내용을 보려면 Configuration File Options 설명서 페이지를 방문합니다.

 

 

 

관리 MongoDB 사용자 생성

MongoDB 인증을 실행한 경우 MongoDB 인스턴스에 액세스하고 관리하는 데 사용할 관리 MongoDB 사용자를 생성합니다.

먼저, 다음을 사용하여 mongo 셸에 액세스합니다.

mongo

 

MongoDB 셸 내부에 있으면 다음 명령을 입력하여 관리 데이터베이스에 연결합니다.

use admin

# switched to db admin

 

userAdminAnyDatabase 역할로 mongoAdmin이라는 새 사용자를 생성하려면 다음 명령을 실행합니다.

db.createUser(
  {
    user: "mongoAdmin", 
    pwd: "changeMe", 
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

# Successfully added user: {
# 	"user" : "mongoAdmin",
# 	"roles" : [
# 		{
# 			"role" : "userAdminAnyDatabase",
# 			"db" : "admin"
# 		}
# 	]
# }

 

관리 MongoDB 사용자 이름은 원하는 대로 지정할 수 있습니다.

다음을 사용하여 mongo 셸을 종료합니다.

quit()

 

 

변경 사항을 테스트하려면 이전에 만든 관리 사용자를 사용하여 mongo 셸에 액세스합니다.

mongo -u mongoAdmin -p --authenticationDatabase admin

use admin

# switched to db admin

 

이제 다음을 사용하여 사용자를 인쇄합니다.

show users

# {
# 	"_id" : "admin.mongoAdmin",
# 	"user" : "mongoAdmin",
# 	"db" : "admin",
# 	"roles" : [
# 		{
# 			"role" : "userAdminAnyDatabase",
# 			"db" : "admin"
# 		}
# 	],
# 	"mechanisms" : [
# 		"SCRAM-SHA-1",
# 		"SCRAM-SHA-256"
# 	]
# }

 

또한 인수 없이 mongo 셸에 액세스하여(mongo만 입력) 위와 동일한 명령을 사용하여 사용자를 나열할 수 있는지 확인할 수 있습니다.

반응형