본문 바로가기
Data/Data Engineering

[MongoDB] Redhat8에 MongoDB 설치하기

by DenverAlmighty 2022. 11. 26.
반응형

0. 실행 환경

AWS t2.xlarge
OS : Redhat 8.6
MongoDB Version : 6.0.3

 

1. 설치하기

1) 패키지 관리 시스템 (yum) 설정

vi /etc/yum.repos.d/mongodb-org-6.0.repo

# 아래 내용 입력
[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc

2) MongoDB 패키지 설치

sudo yum install -y mongodb-org
sudo yum install -y mongodb-org-6.0.3 mongodb-org-database-6.0.3 mongodb-org-server-6.0.3 mongodb-mongosh-6.0.3 mongodb-org-mongos-6.0.3 mongodb-org-tools-6.0.3

# 의도치 않은 업그레이드 방지(yum 업그레이드 시 패키지 업그레이드 방지)
vi /etc/yum.conf
# 아래 내용 추가
exclude=mongodb-org,mongodb-org-database,mongodb-org-server,mongodb-mongosh,mongodb-org-mongos,mongodb-org-tools

3) 설정

3-1) ulimit 설정

MongoDB 4.4부터 ulimit열린 파일 수 값이 64000 미만 이면 시작 오류가 생성된다.
Redhat8에서 ulimit 명령어는 최대 프로세스 값을 구성하기 충분하기 때문에 nproc 값 설정이 필요없다.

3-2) 디렉토리 설정

기본 디렉토리
데이터 : /var/lib/mongo
로그 : /var/log/mongodb

# 새 디렉토리 생성 (/my/mongodb/dir/)
mkdir /my/mongodb/dir/
vi /etc/mongod.conf
storage.dbPath=/my/mongodb/dir
systemLog.path=/my/mongodb/dir/mongod.log
sudo chown -R mongod:mongod /my/mongodb/dir/

3-3) SELinux 구성

sudo yum install git make checkpolicy policycoreutils selinux-policy-devel
git clone https://github.com/mongodb/mongodb-selinux
cd mongodb-selinux
make
sudo make install

3-4) mongod.conf 수정

vi /etc/mongod.conf

아랫부분 net에 bindIp, security에 authorization 수정

  • bindIp: 연결 허용 IP
  • authorization : 연결 시 계정 확인
    # mongod.conf
    # for documentation of all options, see:
    #   http://docs.mongodb.org/manual/reference/configuration-options/
    
    # where to write logging data.
    systemLog:
      destination: file
      logAppend: true
      path: /var/log/mongodb/mongod.log
    
    # Where and how to store data.
    storage:
      dbPath: /var/lib/mongo
      journal:
        enabled: true
    #  engine:
    #  wiredTiger:
    
    # how the process runs
    processManagement:
      fork: true  # fork and run in background
      pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
      timeZoneInfo: /usr/share/zoneinfo
    
    # network interfaces
    net:
      port: 27017
      bindIp : 0.0.0.0
    
    security:
      authorization : enabled
    
    #operationProfiling:
    
    #replication:
    
    #sharding:
    
    ## Enterprise-Only Options
    
    #auditLog:
    
    #snmp:

4) 실행

sudo systemctl daemon-reload
sudo systemctl start mongod
mongosh

 

실행 오류(status=14 / status=100)

 

 

참고

Install MongoDB Community Edition on Red Hat or CentOS

 

 

728x90
반응형