상세 컨텐츠

본문 제목

(MacOS)mongoDB 설치 + 인증 설정 +mongoDB Compass 접속

데이터베이스/NoSQL

by moonionn 2020. 9. 6. 23:13

본문

머리말

언제나 순탄치 않은 DB program 설치...

특히나 MacOS Catalina 업데이트 이후로

구글 서칭 정보들을 그대로 따라하다가는

예상치 못한 오류가 발생해 더 애를 먹었습니다.

 

하지만 언제나 길은 있는 법...

Homebrew를 이용한 MongoDB의 설치부터 auth 설정까지의 과정을

이번 포스트에서 공유하고자 합니다.

 

1. Homebrew 설치

지난 MySQL 설치때와 동일하게 MongoDB도 Homebrew로 설치합니다.

mongoDB 정식사이트에서도 추천하는 방법이에요!

Homebrew에서 기본 세팅들을 해준 상태로 설치를 해주기 때문에 매우 편합니다.

 

https://brew.sh/index_ko

 

Homebrew

The Missing Package Manager for macOS (or Linux).

brew.sh

 

2.mongoDB(mongoDB-community) 설치

2단계는 MongoDB 사이트를 참조하면 됩니다.

https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/

 

Install MongoDB Community Edition on macOS — MongoDB Manual

 

docs.mongodb.com

 

먼저 $brew tap 명령어로 패키지 저장소를 확보합니다.

$ brew tap mongodb/brew

 

$ brew search mongodb를 통해 설치할 수 있는 mongodb 종류를 찾습니다.

$ brew search mongodb

저는 mongodb-communitymongodb-compass를 설치할 겁니다.

mongodb-community 뒤에 @가 붙은 건 예전 버전들입니다.

고로 그냥 mongodb-community는 최신버전을 의미합니다.

mongodb-compass는 mongodb의 GUI 툴입니다.

MySQL의 MySQL Workbench같은 역할을 한다고 할 수 있겠죠

 

우선 mongodb-community를 설치합니다.

$ brew install mongodb-community

여기서부터 혼란이 시작됩니다.

설치가 끝난 후 mongodb 실행 커맨드를 알려주는데

첫번째는 $ brew services start mongodb/brew/mongodb-community

두번째는 $ mongod --config /usr/local/etc/mongod.conf 입니다.

 

구글 서칭 정보들은 여기서 mongod 명령어를 자주 쓰던데,

카탈리나 업데이트 이후인 현재 시점에서는 바로 실행되지 않는 명령어입니다.

초보자들이 애먹기 딱 좋은 시점이죠..ㅎㅎㅎ

따라서 $ brew services start mongodb-community 명령어를 추천드립니다.

 

3.mongoDB-community 실행 테스트

$ brew services start mongodb-community

 

이미 실행중이라면 아래와 같은 문구가 뜹니다.

위든 아래든 정상적으로 작동되고 있는 상태이니

두 문구 중 하나라도 뜬다면 정상입니다.

 

몽고디비 실행 후 mongo 명령어를 치면

shell 이 mongo로 변경됩니다.

가장 최신 버전인 (2020.9월 기준) 4.4.0이 깔린 걸 확인할 수 있습니다.

Ctrl + C 로 빠져나올 수 있습니다.

$ mongo

여기까지 캡쳐 이미지대로 나타난다면

정상적으로 설치가 완료된 것입니다.

 

4.  mongoDB-Compass 설치

$ brew install cask

mongodb-compass 설치 전 brew에 cask를 설치해줍니다.

cask는 brew에서 GUI 프로그램들의 설치를 도와주는 패키지로,

mongodb-compass 또한 Casks 목록에 포함되어 있습니다.

 

지금까지 설치한 것들 목록

(cask를 까니까 다른 패키지들이 같이 딸려오네요..ㅎ)

 

cask가 필요한 프로그램들은 brew cask install ~ 로 명령해야 합니다.

$ brew --cask install mongodb-compass

 

compass가 정상적으로 설치되었다는 문구가 나온 후,

프로그램 목록을 보면 귀여운 mongodb compass 아이콘이 보입니다.

 

5. auth 설정

이 상태에서 그냥 MongoDB Compass를 열고 연결할 수도 있지만...

auth 설정까지 해보도록 하겠습니다.

혼자 공부할 때에는 이런 것에 대해 신경 쓸 일이 거의 없지만

랜섬웨어 공격에 대비한 데이터베이스 보안에 대한 중요성을 생각하면

한번쯤 설정방법을 공부해보는 것도 좋을 것 같았습니다.

 

우선 다시 MongoDB Shell로 들어갑니다.

$ mongo

 

5-1. $ use admin

$ use admin

 

 

5-2. db.createUser()

db.createUser(
{
    user: "rootName",
    pwd: "complicatedPassword",
    roles: [ "root" ]
});

위 양식대로 새로운 계정을 만들어줍니다.

해당 계정의 roles 에 [ "root" ] 만 지정해준다면

'절대권력자' root를 생성해낼 수 있습니다.

 

이 외에도 다양한 role이 존재하며

그 role을 행사할 수 있는 db를 지정할 수 있는데,

자세한 사항은 아래 공식 사이트 링크에 설명이 있습니다!

docs.mongodb.com/manual/reference/method/db.createUser/

 

db.createUser() — MongoDB Manual

Warning By default, db.createUser() sends all specified data to the MongoDB instance in cleartext, even if using passwordPrompt(). Use TLS transport encryption to protect communications between clients and the server, including the password sent by db.crea

docs.mongodb.com

 

아래와 같은 문구가 뜬다면 성공!

 

 

5-3.security 설정

이제 mongoDB의 설정 자체를 바꿔줄 차례입니다.

Homebrew로 mongoDB를 처음 설치하면 아래와 같은 파일/폴더가 생성됩니다.

이 중 config file을 통해 security option을 설정해줄 수 있습니다.

 

 

vi editor로 config 파일을 불러옵니다.

$ vi /usr/local/etc/mongod.conf

 

파일을 연 후 i 를 누르면 INSERT 모드로 변경됩니다.

그런 후 아래 내용을 추가하고 esc => :wq 순서로 저장하고 나옵니다.

security:
  authorization: enabled

여기까지 과정이 끝났다면,

MongoDB와 터미널을 재시작 합니다.

$ brew services stop mongodb-community 후 다시

$ brew services start mongodb-community 하거나

 

그냥 재시작 명령하기

$ brew services restart mongodb-community 

 

그 다음 MongoDB Shell 로 접속해 mongo를 치면

security를 설정하지 않은 상태였을 때보다 안내문이 확 줄었습니다.

 

5-4.db.auth()

드디어 대망의 로그인..

$ use admin 을 통해 db admin으로 전환 후

db.auth('username') 을 하면 비밀번호를 입력하라 합니다.

성공적으로 로그인 되었다면 1, 실패했다면 0을 출력합니다.

로그인 한 뒤로는 db.getUsers() 나 db.dropUser() 등의

db 조작이 가능합니다!

 

5.mongoDB Compass로 접속

이제 Compass를 활용해 데이터베이스에 접근해봅니다.

캡쳐 화면은 가장 최신 버전의 Compass입니다.

이전 버전들의 화면을 보고 싶다면 Fill in connection fields individually를 누르세요.

Authentication 옵션에 Username / Password를 선택합니다.

 

 

Username / Password를 선택하면

Username과 Password를 입력하는 창이 뜹니다.

Authentication Database 란은 저대로 둡니다!

 

올바른 Username과 Password를 입력한다면.....!!

짠!!!!!! 연결 완료!!!!!!

감격 그 자체..!!!!!!!!!!!!!!

관련글 더보기

댓글 영역