CentOS에 MongoDB 설치부터 실행까지(using tgz Tarball)
다운로드
파일은 무료로 사용할 수 있는 MongoDB 커뮤니티 버전을 다운로드 받는다.
MongoDB Community Server 다운로드 페이지 바로가기
MongoDB Community Download
Download the Community version of MongoDB's non-relational database server from MongoDB's download center.
www.mongodb.com
다운로드 받을 파일 선택
- Version : 4.4.3(current), 최신 버전 선택, 현재 기준 최신 버전은 4.4.3(current)
- Platform : RedHat / CenOS 7.0
- Package : tgz
설치
설치를 위해 필요한 리눅스 패키지 설치
sudo yum install libcurl openssl xz-libs
다운로드 받은 tgz 파일 압축 풀기
tar -zxvf mongodb-linux-*-4.4.2.tgz
바이너리 파일 이동
sudo cp /path/to/the/mongodb-directory/bin/* /usr/local/bin/
설정
Ulimit 설정
파일 기반의 리눅스에서 MongoDB 구동 시 가용 파일수가 초괄경우 동작하지 않을 수 있으므로
ulimit을 이용하여 open file 수를 조정한다.
sudo ulimit -n 64000
기본 디렉토리 생성
MongoDB 설치를 tgz를 이용하여 직접 설치를 하였기 때문에 필요한 것들을 직접 구성 해 주어야 한다.
DB 구동 시 필요한 lib 디렉토리와 로그 파일을 보관 할 디렉토리를 만든다.
sudo mkdir -p /var/lib/mongo
sudo mkdir -p /var/log/mongodb
MongoDB는 기본 mongod라는 사용자를 이용한다. 하지만 본인은 root 계정을 사용할 것이므로 계정은 별도로 만들지 않는다.
다만 참고를 위하여 방법을 남기도록 한다.
sudo chown -R mongod:mongod <directory>
-
-R : 지정한 디렉토리 기준 모든 하위 경로에 동일하게 적용할 때 사용
설정 파일 구성
MongoDB 구동 시 적용 할 옵션 정보를 /etc/mongod.conf 파일에 작성한다. 이 파일 또한 직접 생성해야 한다.
mongod.conf 파일 생성
# /etc 경로에 mongod.conf 파일을 생성한다.
touch /etc/mongod.conf
# mongod.conf 파일을 작성한다.
vi /etc/mongod.conf
mongod.conf 파일 내용
processManagement:
fork: true
net:
bindIp: 0.0.0.0
port: 27017
storage:
dbPath: /var/lib/mongo
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
logAppend: true
storage:
journal:
enabled: true
- fork : true 로 설정할 경우 MongoDB가 데몬 모드로 실행된다.
- bindIp: 기본 localhost로 설정되며 모든 IPv4 를 허용하기 위하여 0.0.0.0으로 설정한다.
- port : MongoDB에서 사용 할 포트를 설정한다. 기본은 27017
- dbPath : data 파일이 저장되는 경로이다.
- systemLog.path : 로그 파일이 생성 될 경로이다.
- systemLog.logAppend : true로 설정할 경우 MongoDB를 시작할때마다 기존 로그 파일을 새로쓰지 않는다.
- storage.journal : enabled을 true로 설정할 경우 단일 인스턴스 구동에 대한 쓰기 지속성을 보장한다.
MongoDB 실행
mongod 명령만 입력하여도 구동이 되지만 위에서 열심히 작성한 설정 정보를 반영하기 위해
command 옵션을 이용하여 실행한다.
mongod --config /etc/mongod.conf
MongoDB 중지
서버를 중지하기 위해서는 mongo 명령을 실행한 후 shutdown 명령을 내려야 한다.
# mongo 명령을 수행하여 mongo shell 접근
mongo
# 어드민 전환
db admin
# 중지
db.shutdownServer()
# 나가기
exit