MongoDB는 자유-오픈 소스 문서 데이터베이스입니다. MySQL 및 PostgreSQL와 같은 기존 테이블 기반 SQL 데이터베이스와 다른 NoSQL 데이터베이스 제품군에 속합니다.
MongoDB에서 데이터는 문서마다 필드가 다를 수 있는 유연한 JSON 유사 문서에 저장됩니다. 미리 정의된 스키마가 필요 없으며 데이터 구조는 시간이 지남에 따라 변경될 수 있습니다.
이 튜토리얼에서는 공식 MongoDB 저장소에서 Debian 9 시스템에 MongoDB Community Edition의 최신 버전을 설치하고 구성하는 방법에 대해 설명합니다.
필수 조건
이 튜토리얼을 계속하기 전에 sudo 권한을 가진 사용자로 로그인했는지 확인하십시오.
MongoDB 설치
이 글을 쓸 당시 몽고DB의 최신 버전은 4.0 버전입니다.
설치 프로세스를 계속하기 전에 MongoDB 설명서의 Install on Debian 섹션으로 이동하여 사용 가능한 새 릴리스가 있는지 확인하십시오.
다음 단계에서는 Debian 시스템에 MongoDB를 설치하는 방법을 설명합니다.
01. 먼저 새 리포지토리를 추가하는 데 필요한 패키지를 설치합니다.
sudo apt install software-properties-common dirmngr
02. 다음 명령을 사용하여 시스템에 MongoDB GPG 키를 추가합니다.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
03. 키를 가져오면 MongoDB 저장소를 추가하려면 다음을 수행합니다.
sudo add-apt-repository 'deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main'
이전 버전의 MongoDB를 설치하려면 4.0을 원하는 버전으로 바꾸십시오.
04. 패키지 목록을 업데이트합니다.
sudo apt update
05. 다음 구성 요소와 함께 mongodb-org 메타 패키지를 설치합니다.
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 도구가 포함되어 있습니다.
06. MongoDB 대몬을 시작하고 다음을 입력하여 부팅 시 시작할 수 있도록 합니다.
sudo systemctl start mongod
sudo systemctl enable mongod
07. 설치가 성공적으로 완료되었는지 확인하기 위해 mongo 도구를 사용하여 MongoDB 데이터베이스 서버에 연결하고 연결 상태를 인쇄합니다.
mongo --eval 'db.runCommand({ connectionStatus: 1 })'
출력은 다음과 같습니다.
MongoDB shell version v4.0.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 4.0.2
{
"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 shell에 액세스합니다.
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 사용자의 이름을 원하는 대로 지정할 수 있습니다.
몽고 셸을 종료하려면 다음을 수행합니다.
quit()
변경 내용을 테스트하려면 이전에 만든 관리 사용자를 사용하여 mongo shell에 액세스합니다.
mongo -u mongoAdmin -p --authenticationDatabase admin
메시지가 표시되면 암호를 입력합니다. MongoDB 셸에 들어가면 관리 데이터베이스에 연결합니다.
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 shell에 액세스하여 위와 같은 명령을 사용하여 사용자를 나열할 수 있는지 확인할 수 있습니다.
'SW > 리눅스' 카테고리의 다른 글
Debian 9 : R 설치하는 방법, 예제, 명령어 (0) | 2021.01.24 |
---|---|
CentOS 7 : PHP Composer 설치, 사용하는 방법, 예제, 명령어 (2) | 2021.01.22 |
CentOS 7 : Nginx Server Blocks 설정하는 방법, 예제, 명령어 (0) | 2021.01.20 |
Ubuntu 18.04 : SSH Keys 설정하는 방법, 예제, 명령어 (0) | 2021.01.19 |
Debian 9 : Ruby를 설치하는 방법, 예제, 명령어 (0) | 2021.01.18 |