[CentOS] CentOS 에 Mongdb 설치하고 설정하기
yum repository 추가
sudo vi /etc/yum.repos.d/mongodb-org-4.4.repo
파일 내용은 다음과 같이 현재 최신 버전인 4.4 버전으로 작성한다.
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
yum 으로 설치
sudo yum install -y mongodb-org
mongo 서버스 실행
sudo systemctl start mongod.service
방화벽 오픈하기
외부에서 접속할 수 있도록 방화벽을 오픈한다.
sudo firewall-cmd --permanent --zone=public --add-service=mongodb
sudo firewall-cmd --reload
mongo 에 접속해서 사용자 추가하기
슈퍼 관리자 느낌의 계정을 하나 추가한다.
mongo
# 접속 후
use admin
db.createUser(
{
user : '계정명',
pwd : '비밀번호',
roles: [
{ "role" : "userAdminAnyDatabase", "db" : "admin" },
{ "role" : "dbAdminAnyDatabase", "db" : "admin" },
{ "role" : "readWriteAnyDatabase", "db" : "admin" }
]
}
)
# test
db.auth("계정명", "비밀번호")
exit
mongod.conf 편집
sudo vi /etc/mongod.conf
# 파일 내용중
net:
port: 27017
bindIp: 127.0.0.1
bindIp 를 0.0.0.0 으로 바꾼다. 혹은 특정 아이피만 허용하도록 하려면 허용하고자 하는 ip 들을 , 로 구분해서 적어준다.
ex) bindIp 127.0.0.1,x.x.x.x
# 파일내용중 주석처리된 security: 를 주석해제 하고 아래에 authorization: enabled 을 추가해 준다.
security:
authorization: enabled
대충 최종적으로
net:
port: 27017
bindIp: 127.0.0.1
security:
authorization: enabled
요런 내용이 들어가면 된다.
mongo service restart
sudo systemctl restart mongod.service
mongo 에 접속해서 일반 계정과 db 를 만들어 본다.
mongo
# 접속후
db.createUser({
user:'계정명',
pwd:'비밀번호',
roles: [
{ "role" : "dbAdmin", "db" : "디비명" },
{ "role" : "readWrite", "db" : "디비명" }
]
})
# test
db.auth("계정명", "비밀번호")
접속테스트
compass 같은 접속툴로 접속 테스트를 해 본다.
접속시 connection url
mongodb://계정명:비밀번호@서버아이피:27017/디비명