MacOS에 MongoDB 설치 하기

MongoDB 다운로드

링크 : https://www.mongodb.com/download-center/community?tck=docs_server

압축해제

tar -zxvf mongodb-macos-x86_64-4.2.7.tgz

실행 파일 복사

sudo cp /path/to/the/mongodb-directory/bin/* /usr/local/bin/

데이터 디렉토리 생성

sudo mkdir -p /usr/local/var/mongodb

로그 디렉토리 생성

sudo mkdir -p /usr/local/var/log/mongodb

권한 설정

mac에서 whoami 명령으로 나온 username으로 권한 설정을 한다.

sudo chown my_mongodb_user /usr/local/var/mongodb
sudo chown my_mongodb_user /usr/local/var/log/mongodb

MongoDB 실행

mongod --dbpath /usr/local/var/mongodb --logpath /usr/local/var/log/mongodb/mongo.log --fork

MacOS 실행 권한 설정

앞서 mongod 명령을 실행하면 MacOS에서 차단되었다는 메시지를 볼 수 있다. 아래와 같이 ‘확인 없이 사용’으로 설정해준다.

mongod 실행 확인

ps aux | grep -v grep | grep mongod

위 명령을 사용하면 다음과 같이 mongod 프로세스가 동작중인 걸 확인할 수 있다.

$ ps aux | grep -v grep | grep mongod
victor           43345   0.1  0.2  5583660  29020   ??  S     4:03PM   0:00.85 mongod --dbpath /usr/local/var/mongodb --logpath /usr/local/var/log/mongodb/mongo.log --fork

mongo shell 실행

mongod가 정상 수행되면 mongo shell 접속이 가능하다.

mongo

위 명령을 실행하면 앞서와 같이 MacOS 보안 설정 관련 메시지가 나오므로 똑같이 해제해준다. 정상적으로 실행된 경우 아래와 같은 터미널 메시지들을 확인할 수 있고 mongo 접속 프롬프트가 확인 된다.

$ mongo
MongoDB shell version v4.2.7
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("935af88f-7dba-445e-a4fe-27db3a5b3484") }
MongoDB server version: 4.2.7
Server has startup warnings:
2020-06-04T16:03:16.435+0900 I  CONTROL  [initandlisten]
2020-06-04T16:03:16.435+0900 I  CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2020-06-04T16:03:16.435+0900 I  CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2020-06-04T16:03:16.435+0900 I  CONTROL  [initandlisten]
2020-06-04T16:03:16.435+0900 I  CONTROL  [initandlisten] ** WARNING: This server is bound to localhost.
2020-06-04T16:03:16.435+0900 I  CONTROL  [initandlisten] **          Remote systems will be unable to connect to this server.
2020-06-04T16:03:16.435+0900 I  CONTROL  [initandlisten] **          Start the server with --bind_ip <address> to specify which IP
2020-06-04T16:03:16.435+0900 I  CONTROL  [initandlisten] **          addresses it should serve responses from, or with --bind_ip_all to
2020-06-04T16:03:16.435+0900 I  CONTROL  [initandlisten] **          bind to all interfaces. If this behavior is desired, start the
2020-06-04T16:03:16.435+0900 I  CONTROL  [initandlisten] **          server with --bind_ip 127.0.0.1 to disable this warning.
2020-06-04T16:03:16.435+0900 I  CONTROL  [initandlisten]
2020-06-04T16:03:16.435+0900 I  CONTROL  [initandlisten]
2020-06-04T16:03:16.435+0900 I  CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).

The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.

To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---

>

admin 계정 생성

mongo shell을 띄우고 다음 명령을 사용한다.

use admin
db.createUser(
  {
    user: "admin",
    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

참고

This Post Has 4 Comments

  1. bin

    mongod로 실행할 때 매번 해줘야 뒤에 path들을 적어줘야 하는데 편하게 사용하는 방법이 없을까요

    1. seedtale

      안녕하세요. 저도 괜찮은 방법이 있나 검색을 해봤는데 적절한 방법이 찾아지질 않네요. Mac에서 mongodb를 사용하실 땐 brew를 이용하여 install 하시는 게 편해보입니다. https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/ 이 링크를 참고하셔서 설치하시기 바랍니다. 그리고 mongo 실행 시 보안 이슈가 나오는게 gatekeeper 때문에 그렇다는데요. 이걸 off 시키는 방법 말고는 없나보네요 ㅠㅠ

  2. KangJae Choi

    궁금한 점이 있는데 mongod 커맨드는 처음 mongodb를 설치할 때만 해주면 되나요?
    처음 한번만 하고 다음부터는 mongo 커맨드로 바로 shell 접속을 하면 되는걸까요?
    감사합니다.

    1. warnus

      안녕하세요. 블로그 방문해주셔서 감사합니다. 포스트 작성 시에는 mongod 프로세스가 자동 실행이 되지 않아 저 같은 경우 매번 실행 확인을 해주었는데요. 무슨 일인지 지금은 자동 실행되어 있네요;;

Leave a Reply