오늘은 NoSQL의 대표주자인 MongoDB를 설치하고 설정하여서 실행하는 방법을 정리해 보도록 하겠습니다.
참고로 이 글은 Mac에서의 설치를 중심으로 작성되었습니다.
추후에 Linux에서의 설치 방법도 업데이트하도록 하겠습니다.
1. MongoDB
MongoDB를 설치할 파일을 다운로드 받기 위해서 홈페이지로 이동합니다.
아무래도 사업의 중심이 Cloud이다보니, 어디로 가야할지 조금 어려우실텐데요.
저희처럼, MongoDB를 서버에 설치해서 사용할 사람들은 아래 메뉴를 이용해서 이동하면 됩니다.
Software > Community Server 로 이동해 줍니다.
나오는 화면의 우측에 Download할 OS를 선택하도록 되어있는데요.
선택해서 다운로드 받아줍니다.
2. MongoDB 설치
2-1. 압축풀린 파일 보기
다운로드 받아서, 압축을 풀면, 아래와 같은 구조가 보이는데요.
각 파일들은 아래와 같습니다.
핵심은, mongod를 실행시켜서 서버를 동작시킨 후에,
mongo를 실행시켜 shell에서 mongo를 실행해보거나,
mongoose같은 클라이언트로 접근하면 되겠지요.
구분 | 내용 |
install_compass | compass 설치파일 |
mongod | Database Server를 가르킴 |
mongos | Sharding Router |
mongo | Database Shell (interactive javascript 를 사용한다고 되어 있음) |
2-2. 압출풀린 파일 이동
웹브라우저를 이용해서 다운로드를 받았으므로, Downloads폴더에 파일이 존재하게 되는데요.
해당파일을 더블클릭해서 압축을 풀고, 파일을 저희가 원하는 디렉토리로 이동시켜주어야 합니다.
여기서는 mysql 등이 설치된 디렉토리에 설치하려고 합니다.
Mac에서는 "/usr/local"디렉토리인데요.
아래의 mv명령어를 이용해서 이동시킬 수 도 있구요.
sudo mv <몽고디피파일> /usr/local/mongodb
터미널에서 "/usr/local/"디렉토리로 이동한 후에, "open ."명령어를 이용해서 뷰파인더를 열고, 드래그앤 드롭을 해 주어도 됩니다.
보통 폴더명뒤에 버전명이 길게 적혀있는데, mongodb라는 이름으로 바꾸어줍니다.
3. MongoDB 서버 실행
3-1. 환경변수 설정
이제 서버실행명령어인 mongod를 터미널 어디에서나 실행시킬 수 있도록 환경변수를 설정해주겠습니다.
필수는 아니지만, 실행할 때마다 디렉토리위치를 같이 넣어주는 것이 너무 불편하기 때문이지요.
A. Bash터미널
bash터미널에서 ".bash_profile" 설정해 주면 되는데요.
아래 명령어로 실행해주면 됩니다.
vi가 편하신분들은 nano대신 vi를 넣어주시면 되겠지요.
(사실, mac에서는 그냥 open ~/.bash_profile 명령어로 하는 것이 편하기는 합니다.)
nano ~/.bash_profile
열어서 다음내용을 넣어주시기만 하면 됩니다.
export MONGO_PATH=/usr/local/mongodb/bin
export PATH=$PATH:$MONGO_PATH
B. Zsh 터미널
zsh터미널을 사용하시는 분들도 크게 다르지 않습니다.
편집할 파일이름만 다른고 넣어주어야 할 내용은 위와 같습니다.
nano ~/.zshrc
환경변수 설정이 완료되었으니,
이제 아래 명령어로 정상적으로 실행되는지 확인해 주면 됩니다.
mongo --version
정상적으로 나오는 것을 볼 수 있네요.
3-2. dbpath 생성
처음 mongoDB를 설치하고 조금 어려운 부분중 하나인데요.
실제로 DB를 저장할 위치를 지정해 주는 것 입니다.
이것이 정상적으로 설정되어 있지 않으면, mongoDB를 실행시켜도 dbpath가 없다는 에러가 나오게 됩니다.
MongoDB의 디폴트 dbpath값은 "/data/db"입니다.
(참고로, mysql도 "/usr/local/mysql/data"가 Mac에서의 기본위치입니다)
Mac의 카탈리나OS버전 이후에는 root에 쓰기가 않되어 문제가 발생하므로,
유저디렉토리로 이동한 후에, "data/db" 폴더를 먼저 생성한 후 설정해 주는 방식으로 진행하겠습니다.
dbpath는 폴더에서 생성할 수도, 터미널에서 생성할 수도 있습니다.
A. Finder에서 폴더 생성
예를 들어, Mac의 유저명이 부엉이라면,
파인더에서, 부엉이 폴더로 이동해서, "data/db"를 생성해 주셔도 되구요.
B. 터미널에서 폴더생성
터미널에서 "cd ~"로 홈으로 이동한 후에,
그 곳에서 아래 명령어를 이용해 디렉토리를 생성해 주셔도 됩니다.
sudo mkdir -p data/db
해당 디렉토리에서 생성한 "/data/db"에 대한 권한까지 설정해 주면 마무리 됩니다.
sudo chown <유저명> ./data/db
3-3. dbpath 설정 후 실행
이제 아래 명령어를 통해서 dbpath를 설정해서, mongod를 실행해 주면 됩니다.
mongod --dbpath=<몽고DB 데이터 디렉토리>
저희는 유저디렉토리 및에 생성하였으므로 아래와 같이 입력해 주면 되겠지요.
정확한 path는 고민하지 마시고, 터미널에서 "pwd"로 확인하여 복사해서 정확하게 적어넣어주시면 됩니다.
mongod --dbpath=/Users/{username}/data/db
이렇게 하면 mongoDB서버가 동작하는 것을 보실 수 있는데요.
이제 터미널의 다른 탭에서 "mongo" 명령어를 실행시키면, 아래와 같이 본격적으로 mongo가 동작하는 것을 볼수 있습니다.
4. 팁
4-1. 데이터디렉토리 찾는 방법
혹시나, 나중에 데이터 디렉토리를 잊어버렸다면,
MongoShell을 실행시킨다음 다음 명령어를 실행시켜주면 "dbpath"를 볼 수 있습니다.
db.serverCmdLineOpts()
실행하면 아래와 같이 결과를 볼 수 있습니다.
4-2. Address already in use Exception
간혹 MongoDB가 제대로 끝나지 않은 상태에서, 다시 실행시키려고 하면 "Address already in use" Exception을 볼 수도 있습니다.
이럴경우 가장 쉬운 방법은 해당 Process를 끝내고 다시 시작하는 것 인데요.
아래 명령어를 입력해 주면 됩니다.
sudo killall mongod
이상으로 MongoDB 설치와 실행방법에 대해서 정리해 보았습니다.
'Database > MongoDB' 카테고리의 다른 글
Mongoose Document 생성과 CRUD 구현 # NodeJS mongoDB (0) | 2021.05.26 |
---|---|
MongoDB Database 와 Collection 그리고 Document CRUD 하기 (0) | 2021.05.15 |
댓글