SW/리눅스

CentOS 7 : MongoDB를 설치하는 방법, 예제, 명령어

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

MongoDB는 무료 오픈 소스 문서 데이터베이스입니다. MySQL 및 PostgreSQL와 같은 기존 테이블 기반 SQL 데이터베이스와 다른 NoSQL 데이터베이스로 분류됩니다.

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

이 튜토리얼에서는 CentOS 7 서버가 MongoDB 공식 저장소의 서버에 MongoDB Community Edition을 설치하고 구성하는 방법을 보여 드리겠습니다.

 

 

CentOS 7 : MongoDB를 설치하는 방법, 예제, 명령어

 

 

필수 구성 요소

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

 

 

 

MongoDB 설치

이 기사를 쓸 당시, MongoDB 공식 저장소에서 구할 수 있는 최신 버전의 MongoDB는 버전 4.0입니다. 다음 단계를 계속하기 전에 MongoDB 설명서의 Install on Red Hat 섹션을 방문하여 사용 가능한 새 릴리스가 있는지 확인합니다.

다음 단계에 따라 CentOS 서버에 최신 안정형 MongoDB 버전을 설치합니다.

 

 

01. MongoDB 리포지토리를 사용하도록 설정

시스템에 MongoDB 저장소를 추가하려면 텍스트 편집기를 열고 /etc/yum.repos.d/ 디렉토리 내에 mongodb-org.repo라는 새 YUM 저장소 구성 파일을 생성합니다.

# /etc/yum.repos.d/mongodb-org.repo

[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

 

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

 

 

02. MongoDB 설치 

이제 리포지토리가 활성화되었으므로 yum 유틸리티를 사용하여 mongodb-org 메타 패키지를 설치할 수 있습니다.

sudo yum install mongodb-org

 

설치 중에 yum은 MongoDB GPG 키를 가져오라는 메시지를 표시합니다. y를 입력하고 Enter를 누릅니다. 

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

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

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

mongodb-org-shell : MongoDB에 대한 대화형 JavaScript 인터페이스인 mongo shell은 관리 작업을 수행하는 데 사용되는 커맨드라인입니다.

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

 

 

03. MongoDB 시작

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

sudo systemctl start mongod
sudo systemctl enable mongod

 

 

04. MongoDB 설치 확인 

설치를 확인하기 위해 mongo 도구를 사용하여 MongoDB 데이터베이스 서버에 연결하고 서버 버전을 인쇄합니다.

mongo

 

 

MongoDB 셸 안에 있으면 다음 명령을 입력하여 MongoDB 버전을 표시합니다.

db.version()

 

출력은 다음과 같습니다.

# 4.0.1

 

 

 

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만 입력) 위와 동일한 명령을 사용하여 사용자를 나열할 수 있는지 확인할 수 있습니다.

반응형