본 문서에서는 MongoDB를 사용하기 위한 환경설정에 대한 전반적인 내용을 다룬다.
기준환경 : Rocky Linux 8.7(Green Obsidian)
기준버전 : MongoDB 6.0.6, Mongosh 1.9.1
최종수정일 : 2023.06.02
yum을 통해 패키지를 설치하기 위해서 /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
sudo yum install -y mongodb-org
특정 버전을 원할 경우 아래와 같은 명령어를 이용한다.
sudo yum install -y mongodb-org-6.0.4 mongodb-org-database-6.0.4 mongodb-org-server-6.0.4 mongodb-org-mongos-6.0.4 mongodb-org-tools-6.0.4
ps --no-headers -o comm 1 sudo systemctl start mongod sudo systemctl status mongod sudo systemctl stop mongod
mongosh
처음 사용하는 경우, 전체 권한을 가진 임의의 관리자 유저로서 로그인된다. 적절한 권한을 가진 이용자를 생성하여 해당 이용자를 통해 접근제어를 한다.
use admin db.createUser({user: "*adminID*", pwd: "*adminPWD*", roles: ["dbAdmin", "userAdmin", "root", "dbAdminAnyDatabase", "userAdminAnyDatabase"]}
위에서 roles의 권한은 임의로 분리하여 필요한 것만 설정한다.
리눅스 시스템의 경우 아래와 같이 설정한다.
//on linux system with "systemctl start mongod" modify /etc/mongod.conf security: authorization: enabled //in other system, mongod --auth
sudo systemctl restart mongod
를 통해 mongod를 재시작하면 접속권한제한이 설정된다.
만약, 재시작이 원활하지 않을 경우 sudo rm -rf /tmp/mongodb-27017.sock
명령을 실행해본다.
db.auth("*adminID*", "*adminPWD*")
# /etc/mongod.conf net : #bindIp: 127.0.0.1 bindIp: 0.0.0.0
필요할 경우 포트포워딩을 추가해준다(네트워크 설정 및 방화벽 설정). 아래와 같은 포트들이 MongoDB의 기본 포트로 사용된다. 기본적으로 27017이 기본 포트라고 생각하면 된다.
Default Port | Description |
---|---|
27017 | mongod 와 mongod 객체를 위한 기본 포트 |
27018 | mongod 를 shardsvr 옵션 또는 clusterRole 을 위한 shardsvr 값으로 실행한 경우 |
27019 | mongod 를 configsvr 옵션 또는 clusterRole 을 위한 configsvr 값으로 실행한 경우 |
27020 | mongocryptd 가 메시지를 얻는 기본 포트(Enterprise Server) |
Window 환경에서는 MongoDBCompass를 이용해 손쉽게 접근할 수 있다.
https://www.mongodb.com/docs/v2.4/tutorial/install-mongodb-on-linux/
https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-red-hat/