TIL - MongoDB 설치 및 실행(Apple M1 Mac)

김영훈·2021년 6월 3일
2

ETC

목록 보기
17/34

# MongoDB 설치 및 실행하기

  • Hombrew를 통해 MongoDB 설치

    • brew tap mongodb/brew: MongoDB 탭 추가

      • brew tap | grep mongodb -: MongoDB 탭이 정상적으로 추가됐는지 확인 —> 터미널 화면에 mongodb/brew가 출력되면 문제 없이 탭 추가가 완료된 것이다.

      • brew tap(맥북에 추가된 전체 탭 목록을 출력) 명령으로도 탭 추가 여부 확인이 가능.

    • brew install mongodb-community@4.4: MongoDB 설치

  • MongoDB 실행

    • brew services start mongodb-community@4.4: MongoDB 활성화

      • c.f)brew services stop mongodb-community@4.4: MongoDB를 비활성화시키고 싶을 땐 이 명령어를 사용하면 된다.
    • brew services list: MongoDB가 현재 작동 중인지 확인하고 넘어가도록 하자.

    • mongo MongoDB 시작 —> 설치 및 실행이 문제 없이 이뤄졌다면 mongo shell 화면으로 전환된다.

    • 보다 구체적인 설명은 공식문서를 참고하자.

  • MonogDB 계정 생성(root 계정)

    • mongo shell에 들어오면 가장 먼저 MongoDB 계정을 생성해야 한다. 생성할 계정은 크게 두 가지다. 하나는 모든 권한을 지닌 root 계정이고, 다른 하나는 생성된 데이터베이스를 읽고 쓰는 권한을 가진 일반 사용자 계정이다. 우선 root 계정을 생성토록 하자.

    • use admin: admin 데이터베이스를 사용

    • db.createUser( { user: "mongo", pwd: "password123", roles: ["root"] }): 사용 중인 데이터베이스에 root 계정 추가

    • root 계정으로 mongo shell 접속하기

      • mongo admin -u 아이디 -p 비번: root 계정으로 shell에 접속
  • MonogDB 계정 생성(일반 사용자)

    • use db 이름: db 생성 및 사용

      • show dbs: 현재 생성된 db 목록 확인
      • db; 현재 사용 중인 db 확인
    • db.createUser({ user: "youruser", pwd: "yourpassword", roles: [{ role: "dbOwner", db: "사용 중인 db 이름" }] }): 현재 사용 중인 db를 읽고 쓸 수 있는 일반 사용자 계정 생성

      • 주의 사항: 생성된 계정은 현재 사용 중인 데이터베이스에 대해서만 권한을 갖기 때문에, 계정 생성 전 db;명령으로 현재 사용 중인 데이터베이스가 무엇인지 확인하는 게 좋다.
      • c.f)db.dropUser("username"): 계정 삭제 명령
      • c.f)db.getUsers(): 현재 데이터베이스의 사용자 출력
  • MongoDB 인증 기능 추가 및 외부 접속 허용하기

    • 별도의 보안 인증 절차 없이 MongoDB 실행이 가능하다. 문제는 이러한 보안 절차를 생략하게 되면 랜섬웨어 등의 공격에 취약할 수 있다는 점이다. 그러므로 MongoDB를 처음 시작하는 사용자라면 신뢰도 있는 사용자에게만 Server 접속을 허용토록 인증 절차를 추가하는 걸 권장한다. 방법은 아래와 같다.
    • mongodb.conf 파일 접근
      • vim /opt/homebrew/etc/mongod.conf: mongodb.conf 파일에 접근하자. Apple M1 Mac 사용자가 아니라면, /usr/local/etc/mongod.conf 경로에서 찾을 수 있다.
    • 보안 인증 절차 추가
      • 다음 코드를 추가
        security:
            authorization: 'enabled'
    • 외부 접속 허용 및 포트 번호 설정
      • 기존의 bindIp: 127.0.0.1를 다음 코드로 변경
        net:
            port: 27017
            bindIp: 0.0.0.0
    • brew services restart mongodb-community@4.4 MongoDB 재활성화
      • netstat -anv|grep LISTEN: MongoDB 실행 여부 확인
    • mongo db이름 -u 아이디 -p 비밀번호: MongoDB 접속
      • ex) mongo subway -u root -p 12341234
  • MongoDB Collection 생성 및 Compass 설치

    • db.createCollection(name,[options]): Collection 생성

      • ex) db.createCollection("subway_stations")
      • Collection 삭제 명령: db.Collection 이름.drop()
    • Compass 다운로드 사이트

      Compass란?
      terminal 환경에서 MongoDB를 사용할 때 겪는 불편함을 덜어줄 수 있는 MongoDB GUI tool이다. Compass를 활용하면 DB Collection 조회, 추가, 삭제부터 Document의 CRUD에 이르기까지 보다 쉬운 데이터베이스 관리가 가능해진다.

    • 여기서부턴 Compass나 mongo shell을 이용하여 사용자의 입맛에 맞게 document(RDBMS의 데이터 row에 해당)를 추가하는 등의 DB 구축을 해 나가면 된다!!!


👉 다음 글에선 Mongoose 설치 및 사용 방법에 대해 다루겠습니다.

   
profile
Difference & Repetition

2개의 댓글

comment-user-thumbnail
2021년 11월 10일

몽고db에 대해 아무것도 모르는데 맥북에 설치하려고 애 먹다가 이 글보고 한번에 잘 설치했습니다..!
감사합니다

답글 달기
comment-user-thumbnail
2022년 10월 7일

너무 상세하고 유용하게 기술되어있어 많은 도움 얻었습니다 감사합니다!!!

답글 달기