본문으로 건너뛰기

MongoDB Install 및 실행

 · reading-time-plural · 

해당 글은 Mysql과 같은 RDBMS를 배우고 오신 분이 실수도 있고 처음으로 DB를 접근하시는 분 이 실수도 있습니다. 초보자 시점과 Mysql과 다른 점을 집중적으로 적었으니 꼭 글을 끝까지 읽어보신 후 실습 부탁드립니다 😁

MongoDB Install

MongoDB 에서 접속 후 상단의 SoftwareCommunity Server 를 클릭한다.

자신의 사양에 맞게 버전을 설정후 Download를 클릭한다.

Next 클릭

동의 후 Next 클릭

Complete 를 눌러 설치합니다.

기본경로 C:\Program Files 밑에 설치하고자 한다면 Complete 다른경로에 설치하고 싶다면 Custom 을 선택하면 됩니다.

설정을 변경하지 않고 기본 값 그대로 설치한다.

GUI기반 MongoDB Tool을 설치하실 분은 Install MongoDB Compass 체크하고 설치하시면 됩니다.

해당 페이지에서는 DataGrip 을 사용할 예정이지만 나중에 살펴보기 위해 이번 편에서는 설치하도록 하겠습니다.

Install 클릭하여 설치를 진행합니다.

이전에 체크한 MongoDBCompass 가 설치된 것을 확인할 수 있다.

환경 변수 설정

info

설치 후 mongod , mongo 와 같은 실행파일을 커맨드라인에서 경로를 들어가지않아도 편리하게 바로 실행할 수 있도록 환경변수를 추가해야 한다.

그냥 어디서든지 명령어를 실행하고 싶어서 그렇습니다 😏

먼저 mongodb가 설치되어있는 폴더의 주소를 복사합니다.

환경변수 설정 페이지로 들어갑니다.

내 PC 우클릭 → 속성 → 왼쪽의 고급 시스템 설정환경 변수

이후 Path 를 선택 후 편집을 클릭합니다.

새로 만들기 를 클릭하여 이전에 복사한 경로를 붙여넣고 확인을 눌러 설정합니다.

명령 프롬프트로 실제로 잘 적용되었는지 확인해봅니다.

$ set path C:\Program Files\MongoDB\Server\[버전명]\bin 보인다면 환경변수 설정 완료입니다.

mongo server가 활성화 되어있다면 mongo 입력 시 mongoDB Shell으로 넘어가는걸 확인할 수 있습니다.

Server Setting

개념

대부분의 DB는 외부에서 접속하기 위해 Server를 내장하고 있다.

예를 들어 개인 공부 및 대학교 수업에서 Mysql으로 실습 시 설치할 때 잘보면 MySQL Server도 설치하는 것을 볼 수 있다.

그렇기 때문에 DB Server가 활성화 되어있지 않으면 DB의 접근은 불가능하다.

필자의 경우 DBMS Install시 DB는 DB자체라고 생각했지 Server안에 DB가 있는 줄 몰랐다.
해당 개념을 알고 접근하면 추후, JDBC와 같은 DB Connection시 이해하기 쉬울 것이다.

MongoDB도 마찬가지다. 아래의 명령어를 통해 Server를 활성화 시키고 접근할 수 있다.

행위명령어설명
ServermongodmongoDB 데몬의 약자로 mongoDB server를 활성화 시킵니다.
ClientmongoClient 신분으로 mongoDB에 접속합니다.

보통 DBMS를 mysql으로 입문하게 되면 mysql workbench 편리한 GUI Tool 덕분에 익숙함에 모를 수 있지만 사실 백단에서는 mysql도 똑같이 shell기반으로 돌아가고 있다.

활성화 전 mongod 이해하기

mongod Server를 활성화 시켜보겟다.

log가 쭈우욱 찍히더니 마지막 cmd를 보면 server가 실행되지 않은 것을 확인할 수 있다.

트러블 슈팅 전 mongod 라는 명령어에 대해 알 필요가 있다.

mongod -help 를 입력해보면 해당 명령어에 대한 파라미터 목록이 나온다.

우리는 argument없이 mongod 만 호출했음으로 Default으로 작동한 것이다.

DB를 저장할 디렉토리 생성

server 실행 전 어떤 DB를 server에 올릴껀지 선택해 줘야 한다.

mongod 의 DB 기본경로는 Windows 기준 C:\data\db 이다. 해당 디렉토리를 만들고 다시 실행해보자.

현재는 빈 디렉토리로 되어있다. 이제 server를 실행해보자.

많은 log와 함께 정상적으로 server가 실행되는 것을 볼 수 있다.

잘보면 port 27017 으로 실행되고 있다는 log를 확인할 수 있다.

info

MongoDB의 기본 포트 번호는 27017 이다.

또한, Default Value가 생성된것을 확인할 수 있다.

이제 해당서버에서 일어나는 CRUD는 서버가 지정된 아래 디렉토리에 모두 저장된다.

설정 정보 변경하기

근데 port와 db 경로를 변경하고 싶으면 어떻게 해야 할까?

mongod 실행 시 --config--dbpath 파라미터로 값을 넘겨줄 수 있다.

  1. --config 설정법
  2. --dbpath 설정법

번외 🤬

Windows의 경우 MongoDB 설치 시 자동으로 Server가 활성화되어있으며 Windows Service에도 등록되어있다. 서비스에 들어가면 확인할 수 있다.

덕분에 내가 Server를 활성화 하지 않았는데 활성화 되어있어 훨씬 더 햇갈리게 되었다. 😭

어디를 참조해?

사용 환경에 따라 다르지만 Local으로 사용할 경우 이미 Windows Service에 등록되어 있는 것을 사용하는 것이 편리해 보인다.

혹은 커스텀해서 Service으로 등록할 수 있다!

자동으로 생성된 MongoDB Windows Service를 까서 확인해보면 실행 파일 경로가 아래와 같이 설정되어 있다.

"C:\Program Files\MongoDB\Server\4.4\bin\mongod.exe" --config "C:\Program Files\MongoDB\Server\4.4\bin\mongod.cfg" --service

위에서 설정 정보 변경하기를 보고오면 어떤 메커니즘으로 호출되는지 알 수 있다.

사실 우리가 이전에 환경변수를 지정하러 들어갔던 디렉토리를 보면 .cfg 파일이 생성되어 있었다.

기본으로 등록된 Windows Services를 사용하면 해당 경로로 log와 DB가 저장되는 것을 확인할 수 있다.

Hello, world

Server에 대한 개념이 길었지만 해당 챕터를 이해하면 추후, 다른 DBMS 사용시 많은 도움이 될 것이다.

자 이제 Server를 열고 mongo 를 통해 접속해보자.

당연히 Server 활성화 안하고 들어가면 Connection 되지 않는다.

DB list 출력

show dbs 으로 DB list를 출력합니다.

DB 생성

  1. use [DATABASE_NAME] 명령어를 통해 Database를 생성합니다.
  2. show dbs 으로 조회해도 최소 한개의 Document가 없어서 출력되지 않습니다.
  3. 한개의 Document를 추가합니다.
  4. 정상적으로 조회되는 것을 확인할 수 있습니다.

DataGrip 연결

+ 버튼을 클릭 후 데이터 소스에서 MongoDB를 클릭한다.

만약 MongoDB Driver가 없다면 설치하고 Host와 Port를 입력 후 연결 테스트를 클릭한다.

note

접속 Server에 따라 계정 정보 등 필요한 값을 입력합니다.

정상적으로 연결되었다는 피드백이 있으면 적용 후 확인을 클릭한다.

정상적으로 연결되어 DataGrip에서 DB list를 출력하고 있다.

결론

사실 Server쪽이 아니면 크게 설치시 어려움은 없다.

하지만 대부분의 튜토리얼이 MongoDB 설치 후 mongod 으로 server를 활성화 시켜서 설명을 진행하는데

사실은 백단에서는 Windows Service으로 mongod 가 실행 중 이여서 C:\data\db 와 같이 지정한 경로에 DB가 저장되지 않을 수도 있고

mongod 를 종료해도 mongo 으로 계속 Local Server에 접속되는걸 보고 뭐야 서버 왜 안죽어! 를 경험할 수도 있다.

필자도 위의 이유로 화가나서 작성되었다.

Reference

  1. 친절한 설명

parkgang
태그 🏷