우분투 18.04 기준으로 되어있습니다.

 

 1. MongoDB 설치

 

wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -

sudo apt-get install gnupg

wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list

 

sudo apt-get update

 

sudo apt-get install -y mongodb-org=4.2.3 mongodb-org-server=4.2.3 mongodb-org-shell=4.2.3 mongodb-org-mongos=4.2.3 mongodb-org-tools=4.2.3

 

위와같이 설치할경우 리눅스에 설치된 디렉토리는

 

 

2 . 폴더 생성 및 conf 파일 생성 

 

실행파일 

/usr/bin/mongo 

 

설치경로

/var/lib/mongo

 

설치경로에 3가지의 폴더와 파일을 만들어야한다.

 

mkdir /var/lib/mongo/master
mkdir /var/lib/mongo/master/log

mkdir /var/lib/mongo/slave1
mkdir /var/lib/mongo/slave1/log

mkdir /var/lib/mongo/arbiter
mkdir /var/lib/mongo/arbiter/log

 

 

그다음 위의 경로에 아래의 conf 파일을 각각 생성해준다. 

 

 

 

master 파일.

# mongod.conf

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb/master
  journal:
    enabled: true

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/lib/mongodb/master/log/mongod.log

# network interfaces
net:
  port: 26016
  bindIp: 127.0.0.1

processManagement:
  timeZoneInfo:  /usr/share/zoneinfo
  fork: true 

replication:
  replSetName: "replica"

 

slave 파일.

# mongod.conf

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb/slave1
  journal:
    enabled: true

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/lib/mongodb/slave1/log/mongod.log

# network interfaces
net:
  port: 26026
  bindIp: 127.0.0.1

processManagement:
  timeZoneInfo: /usr/share/zoneinfo
  fork: true 

replication:
  replSetName: "replica"

 

arbiter

# mongod.conf

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb/arbiter
  journal:
    enabled: true

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/lib/mongodb/arbiter/log/mongod.log

# network interfaces
net:
  port: 26036
  bindIp: 127.0.0.1

processManagement:
  timeZoneInfo: /usr/share/zoneinfo
  fork: true 

replication:
  replSetName: "replica"

 

 

3. 실행 및 종료

 

 

 

실행명령어

/usr/bin/mongod --config /var/lib/mongodb/master/master.conf 
/usr/bin//mongod --config /var/lib/mongodb/slave1/slave1.conf 
/usr/bin/mongod --config /var/lib/mongodb/arbiter/arbiter.conf 

 

종료명령어 (종료시에만 입력)

/usr/bin/mongod --shutdown --config /var/lib/mongodb/arbiter/arbiter.conf 
/usr/bin/mongod --shutdown --config /var/lib/mongodb/slave1/slave1.conf 
/usr/bin/mongod --shutdown --config /var/lib/mongodb/master/master.conf 

 

다음과같은 Shell 이 뜨게되면 아래와 같이 입력한다.

rsconf ={_id : "replica", members:[{_id:0,host:"127.0.0.1:26016",priority:2},{_id:1,host:"127.0.0.1:26026",priority:1},{_id:2,host:"127.0.0.1:26036",priority:1,arbiterOnly:true}]};

 

이렇게 하면 셋팅완료

 

 

아래부분은 보안부분이다.


#외부 접속을 허용하기위해선 bindIp : 0.0.0.0 로 설정해야 한다.

 

#계정생성 PRIMARY 로 접속하여

> use admin
> db.createUser({
    user: 'adminId',
    pwd: 'password',
    roles: ['root']
})

 

## 암호화 설정방법.

Linux에서 mongodb 키 파일을 작성하고 모드가 600그대로있는 모든 DB 서버에 복사하십시오 .

openssl rand -base64 741 > mongodb.key

chmod 600 mongodb.key

mongod.conf

security:
    authorization: enabled
    keyFile: /var/lib/mongodb/mongodb.key

 

 

+ Recent posts