본문 바로가기

Embedded/LINUX

CentOS8 + MongoDB

다음에서 퍼옴

phoenixnap.com/kb/install-mongodb-on-centos-8

 

How to Install MongoDB on CentOS 8 {3 Easy Steps}

Install MongoDB database application on CentOS 8. Follow the MongoDB installation & configure, create user, and set up authentication with this tutorial.

phoenixnap.com

소개

MongoDB는 문서 기반 NoSQL 데이터베이스 애플리케이션입니다. MySQL과 달리 데이터를 다른 문서에 다르게 저장할 수 있습니다.

다른 문서의 다른 필드를 허용하며 데이터 구조는 영구적으로 고정되지 않습니다.

이 자습서에서는 CentOS 8에 MongoDB를 설치하는 방법을 알아 봅니다.

 

Prerequisites

  • A system running 64-bit CentOS 8 Linux
  • User account with sudo or root privileges
  • Access to a terminal window/command line

CentOS 8에서 MongoDB 설치 

 

Step 1: MongoDB 소프트웨어 리포지토리 추가

기본적으로 MongoDB는 공식 CentOS 리포지토리에서 사용할 수 없습니다. MongoDB 리포지토리를 추가하려면 터미널 창을 열고 MongoDB 리포지토리 구성 파일을 만듭니다.

 

[root@localhost ~]# gedit    /etc/yum.repos.d/mongodb-org-4.2.repo

mongodb-org-4.2.repo 파일에 다음을 입력

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

- cat 명령어로 제대로 입력되었는지 확인

[root@localhost ~]# cat    /etc/yum.repos.d/mongodb-org-4.2.repo

Step 2: Install MongoDB Software

- CentOS8에 MongoDB를 설치

[root@localhost ~]# dnf   -y    install    mongodb-org

Step 3: MongoDB Service 시작

- 다음 명령을 입력하여 MongoDB 서비스를 시작

[root@localhost ~]# systemctl   start   mongod

 - 장치를 찾을 수 없다는 오류가 발생하면 다음 명령을 실행 한 후 이전 명령을 다시 시도

[root@localhost ~]# systemctl    daemon-reload

 - MongoDB를 영구적으로 사용하는 경우 다음 명령을 사용하여 부팅시 실행되도록 설정

[root@localhost ~]# systemctl   enable    mongod

 - MongoDB 서비스가 status 명령으로 사용하여 실행 중인지 확인

[root@localhost ~]# systemctl   status   mongod

 

 

MongoDB 설정(Set Up) 및 구성(Configure) 

MongoDB 관리자(Admin User) 생성
 

 - 사용을 위해 Mongo 셸을 열어 시작합니다. 다음 명령을 입력

[root@localhost ~]#  mongo

 
>

 - 관리자 계정으로 전환

>  use   admin

- Mongo 데이터베이스에 대한 관리자 사용자 계정을 만듭니다.

use admin # admin 데이터베이스 선택

db.createUser({
  user: "mdbadmin",  # 계정 이름
  pwd: "password",  # 비밀번호
  roles: [          # 사용자에게 주어진 권한 목록. 여러 데이터베이스에 대한 권한을 할당할 수 있다.
    {
      role: "userAdminAnyDatabase", # built-in 권한인 root. 문자 그대로 모든 데이터베이스를 관리할 수 있다.
      db: "admin"   # 어떤 데이터베이스에 대한 권한인지 명시
    }
  ]}
)

 - 시스템응답은 다음과 같습니다.

 

- 관리자가 아닌 사용자를 생성해서 실제 작업에 사용

db.createUser({
  user: "rhostem",
  pwd: "password",
  roles: [
    {
      role: "readWrite", # 읽기, 쓰기 권한
      db: "test"         # 위의 권한을 부여할 데이터베이스로 test를 지정
    }
  ]}
)

 

 -  사용자 목록 표시

> show   users 

 - 시스템은 방금 만든 사용자 이름에 대한 세부 정보를 표시해야합니다.

 - Mongo shell 종료

> quit()
[root@localhost ~]#

 

MongoDB 인증 Configure

기본적으로 모든 사용자는 MongoDB에서 모든 기능을 수행 할 수 있습니다. 사용자가 작업을 수행하려면 적절한 자격 증명이 있어야합니다.

Step 1: 인증(Turn on Authentication)

  - /lib/systemd/system/mongod.service 파일 편집 

[root@localhost ~]# gedit     /lib/systemd/system/mongod.service

 - 다음 내용을 찾을 것

Environment="OPTIONS=-f /etc/mongod.conf"

 - --auth 를 추가

Environment="OPTIONS= --auth -f /etc/mongod.conf"

 

Step 2: 서비스 다시로드하여 변경사항 적용

 - Reload the mongod.service:
[root@localhost ~]# systemctl      --system    daemon-reload
[root@localhost ~]# systemctl   restart   mongod

Step 3: Mongo 사용자 인증 테스트

 - Mongo Shell로 전환 -> 관리자를 사용하여 모든 사용자 나열
 
[root@localhost ~]# mongo

 

>  use    admin
> show    users

  - 오류 메시지가 표시됨 

  - 자격증명으로 인증 : 결과는 1이 나와야함

> db.auth  (  'mdbadmin'  ,   'password'  )
1

Now, try running the show users command again:

> show   users

 

mdbadmin password가 실제 사용할 사용자 이름과 암호로 변경되어있는지 확인하세요

결론

이제 CentOS 8 시스템에 MongoDB가 설치되어 있어야합니다. 또한 무단 액세스를 방지하려면 보안 관리자 계정이 있어야합니다.

 

TCP 포트 개방

 - MongoDB는 기본적으로 27107번 포트를 사용

 - 외부에서 접속할 수 있도록 방화벽 설정을 통해 27017번 포트를 개방해야 함

 

 - 방화벽 설정

- mongodb를 찾아 체크

 

- 적용하기

- 설정파일 수정 

[root@localhost ~]# vi    /etc/mongod.conf

 - set number로  line number 표시

 - 29번 라인의 bindIp앞에 #으로 주석처리

 

bindIp=127.0.0.1       ->     bindIp=0.0.0.0

## 디비 관리 계정추가
useradd mongod
passwd mongod
## mongo 폴더 권한 설정
mkdir /var/lib/mongo/data
chown -R mongod:mongod /var/lib/mongo/
chgrp -R mongod /var/lib/mongo/
## 서비스 시작
service mongod start
## mongod 시스템 시작시 자동실행
chkconfig mongod on

– 설정파일 : /etc/mongod.conf
– 데이터 저장 폴더 : /var/lib/mongo
– 로그 저장 폴더 : /var/log/mongodb

 

 

docs.mongodb.com/v4.2/

 

The MongoDB 4.2 Manual — MongoDB Manual

The MongoDB 4.2 Manual Welcome to the MongoDB 4.2 Manual! MongoDB is a document database designed for ease of development and scaling. The Manual introduces key concepts in MongoDB, presents the query language, and provides operational and administrative c

docs.mongodb.com

Connect to mongodb

- 생성한 아이디로 로그인해본다( id :mdbadmin   password:password  내가만든db명 : admin

[root@localhost ~]#  mongo  -umdbadmin   -ppassword   admin

- 일반적인 접속방법

mongo --port <포트> -u "<사용자 계정>" -p "<비밀번호>" --authenticationDatabase "admin"

'Embedded > LINUX' 카테고리의 다른 글

TABLE - GRAY  (0) 2020.09.23