티스토리 뷰

SW 개발

CentOS 7, MongoDB 4 설치하기

지단로보트 2019. 7. 28. 01:53

개요

  • MongoDBNoSQL 진영의 대표주자로서, 특수한 목적이 아닌 일반적이고 보편적인 목적의 애플리케이션 데이터를 영구적으로 저장할 수 있는 오픈 소스 데이터베이스이다. 특히, 4.0(2018년) 버전부터 서로 다른 컬렉션 간의 트랜잭션을 지원하면서, RDBMS의 위치를 위협할 정도로 쓰임새가 많아졌다.

MongoDB 설치: Docker 컨테이너 방식

  • 아래는 MongoDB를 도커 컨테이너로 레플리카 셋으로 구성하여 설치하는 예이다. [관련 링크]
$ mkdir mongodb

$ cd mongodb

$ nano docker-compose.yml
version: '3'
services:
  MongoDB:
    image: mongo:4.4.4
    command: ["--replSet", "foobar-dev", "--bind_ip_all", "--port", "27017"]
    volumes:
      - "./data:/data"
    ports:
      - "27017:27017"
    healthcheck:
      test: test $$(echo "rs.initiate().ok || rs.status().ok" | mongo --port 27017 --quiet) -eq 1
      interval: 10s
      start_period: 30s
    networks:
      - MongoDB
networks:
  MongoDB:
    driver: bridge

$ docker-compose pull

$ docker-compose up -d

$ docker-compose ps
          Name                        Command                  State                Ports
---------------------------------------------------------------------------------------------------
mongodb-docker_MongoDB_1   docker-entrypoint.sh --rep ...   Up (healthy)   0.0.0.0:27017->27017/tcp

어드민 계정 설정

  • MongoDB의 본격적인 사용에 앞서 초기 어드민 계정과 권한을 설정해야 한다.
$ docker-compose exec MongoDB sh

# mongo
> use admin
> db.createUser({ user: "admin", pwd: "admin", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]})
> exit

# mongo --authenticationDatabase "admin" -u "admin" -p
> exit

# mongo
> use admin
> db.auth("admin", "admin")
1

> db.createUser({user: "foobar-dev"", pwd: "{password}", roles : [{role: "readWrite", db: "foobar-app-dev"}, {role: "readWrite", db: "foobar-data-lake-dev"}]})
> exit

MongoDB Shell 설치

  • MongoDB 전체를 설치하지 않고, 원격지 데이터베이스에 연결하기 위해 Shell만 설치하고자 할 경우, 아래와 같이 설치하면 된다.
# MongoDB Shell 설치
$ sudo yum install -y mongodb-org-shell

MongoDB 실행

  • 아래는 MongoDB 실행 방법이다.
### 서비스 포트 확인
$ nmap -p 27017 localhost
PORT      STATE SERVICE
27017/tcp open  unknown

### MongoDB 4.0 실행
$ mongo
MongoDB shell version v4.0.11

### 현재 존재하는 디비 목록 조회
> db
test

### 사용 디비 변경
> use test
switched to db test

### 현재 DB에 존재하는 컬렉션 조회
> show collections
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함