본문 바로가기

개발자는 오늘도 달립니다.

[MongoDB] 몽고 DB 설치 및 세팅 With CentOS 본문

데이터베이스/몽고DB

[MongoDB] 몽고 DB 설치 및 세팅 With CentOS

✍21시간 2020. 10. 7. 13:47

현재, NoSQL 기술로 만들어진 제품의 종류는 무려 200개가 넘습니다. 하지만 아래 그림에서 보는 바와 같이 MongoDB가 5위에 랭크될 만큼 많은 관심과 우수한 기술을 기반으로 하고 있음을 알 수 있습니다. (2020.10.07)

그럼 거두절미하고 Centos 에서의 설치 방법을 기록해 보도록 하겠습니다.

https://db-engines.com/en/ranking(20.10.07)

 

 

 

1. 먼저 패키지 업데이트 여부를 확인

sudo yum -y update

 

 

2. MongoDB 4.0 저장소 메타 정보 생성

sudo touch /etc/yum.repos.d/mongodb-org.repo;
sudo bash -c 'echo "[mongodb-org-4.0]" >> /etc/yum.repos.d/mongodb-org.repo';
sudo bash -c 'echo "name=MongoDB Repository" >> /etc/yum.repos.d/mongodb-org.repo';
sudo bash -c 'echo "baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86\_64/" >> /etc/yum.repos.d/mongodb-org.repo';
sudo bash -c 'echo "gpgcheck=1" >> /etc/yum.repos.d/mongodb-org.repo' sudo bash -c 'echo "enabled=1" >> /etc/yum.repos.d/mongodb-org.repo';
sudo bash -c 'echo "gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc" >>/etc/yum.repos.d/mongodb-org.repo'

 

 

3. MongoDB 4.0 설치

sudo yum install -y mongodb-org

 

 

4. 설정 파일 수정 (/etc/mongod.conf)

net:
port: 27017

내부망에 연결된 모든 노드로부터의 원격 접속을 허용

개발 및 테스트 환경에서만 사용, 운영 환경에서는 보안 문제로 비추천

bindIp: 0.0.0.0

 

 

5. MongoDB 4.0 서비스 시작 및 서비스 enable

sudo systemctl start mongod
sudo tail -f /var/log/mongodb/mongod.log
2019-07-27T16:13:26.779+0000 I NETWORK [initandlisten] waiting for connections on port 27017

sudo systemctl enable mongod.service

 

(Firewall 방화벽 사용 경우) MongoDB 원격 접속을 위한 포트 허용

sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
sudo firewall-cmd --reload

 

 

6. 어드민계정생성 (pwd: "꼭 변경해서 사용하세요!")

mongo
use admin
db.createUser(
  {
    user: "Admin",
    pwd: "zxcv",
    roles: [ "readWriteAnyDatabase", "dbAdminAnyDatabase", "clusterAdmin" ]
  }
)

 

 

7. 유저계정생성 (pwd: "꼭 변경해서 사용하세요!")

mongo
use iot_db
db.createUser(
  {
    user: "iot_user",
    pwd: "zxcv",
    roles: [ { role: "readWrite", db: "iot_db" },
    { role: "read", db: "iot_db" } ]
  }
)

 

 

8. 설정 파일 재수정 (/etc/mongod.conf)

...
security:
  authorization: enabled
...

수정 후 mongo 데몬 서비스 재시작

sudo systemctl restart mongod

 

 

※ 접속 커맨드

mongo admin --port 27017 -u "Admin" -p "zxcv" --authenticationDatabase "admin"

mongo iot_db --port 27017 -u "iot_user" -p "zxcv" --authenticationDatabase "iot_db"
use iot_db
db.auth("iot_user","zxcv")

 

※ sort 쿼리 최대 개수 허용치 늘리기

db.adminCommand({"setParameter": 1, "internalQueryExecMaxBlockingSortBytes" : 134217728})

 

 

※ 몽고 디비 저장소 바꿀 때는 권한 문제에 신경을 써줘야 한다!

(if permanently want to fix this just try to give rwx premission to /data/db folder)
chmod +rwx data/

mongo title

 

Comments