Hayden's Archive

[MongoDB/Linux] 우분투에 몽고DB 설치 및 외부 접속 허용 / MongoDB Compass로 외부 접속 본문

Study/DB

[MongoDB/Linux] 우분투에 몽고DB 설치 및 외부 접속 허용 / MongoDB Compass로 외부 접속

_hayden 2020. 11. 6. 09:26

클라우드 서버에 몽고DB를 설치해서 외부 접속을 허용할 일이 있었다.

내 우분투에서는 몽고DB 공식 홈페이지에 접속해서 deb 설치 파일을 다운 받아서 설치했지만, 클라우드 서버에서는 명령어로 설치해야 했다.

그래서 우분투에 몽고DB 설치 및 외부 접속 허용 방법을 정리해본다.

 

아래 공식 매뉴얼을 참고해서 우분투에 몽고DB를 설치한다.

docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/#install-mongodb-community-edition-using-deb-packages

 

몽고DB를 시작하고

$ sudo systemctl start mongod

 

 

아래 명령어로 mongod.conf 설정 파일을 연다.

$ sudo nano /etc/mongod.conf

 

다음과 같이 설정 파일을 수정한다.

security 는 데이터베이스 접속시 인증이 필요하게 하는 것이다.

net:
  port: 27017
  bind_ip: 0.0.0.0

 

 

몽고DB를 중단하고 다시 시작한다.

$ sudo systemctl stop mongod
$ sudo systemctl start mongod

 

 

mongo 쉘을 실행한다.

$ mongo

 

admin 데이터베이스를 추가하고, 관리자를 추가한다.

use admin

db.createUser({
  user: "계정이름",
  pwd: "비밀번호",
  roles: [          
    {
      role: "root",
      db: "admin"
    }
  ]}
)

 

이제 새로운 데이터베이스를 만들고, 읽고 쓸 수 있는 사용자를 생성한다.

use 데이터베이스명

db.createUser({
  user: "사용자아이디",
  pwd: "사용자비밀번호",
  roles: [
    {
      role: "readWrite",
      db: "데이터베이스명"
    }
  ]}
)

 

참고 : use "데이터베이스"로 데이터베이스에 들어간 후 db.getUsers()를 치면 현재 등록된 사용자들을 볼 수 있다.

 

 

이제 로컬의 MongoDB Compass로 들어가서 연결한다.

Hostname에는 ip 주소, Username에는 위에서 추가한 아이디, Password에는 위의 비밀번호, Authentication Database에는 위의 데이터베이스를 입력하면 된다.

 

 

부팅시 몽고DB 자동 실행은 아래 블로그 글을 참고하자. 

참고 : blog.rhostem.com/posts/2018-08-31-mongodb-connection

 

위와 관련한 crontab에 관련된 설명이다.

khanrc.tistory.com/entry/cron-crontab%EC%9D%98-%EA%B0%9C%EB%85%90