[MAC] MongoDB 설치 및 계정 생성

hwwwa·2022년 4월 17일
0
post-thumbnail

macOS 설치 공식문서 👉 https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-os-x/

Linux 설치 공식문서 👉 https://www.mongodb.com/docs/manual/administration/install-on-linux/

설치

  • brew tab으로 설치 가능한 소프트웨어를 확장
    $ brew tab mongodb/brew
  • 설치 가능한 mongodb 검색
    $ brew search mongodb  
    ==> Formulae
    mongodb-atlas-cli                        mongodb/brew/mongodb-community@4.2
    mongodb/brew/libmongocrypt               mongodb/brew/mongodb-community@4.4
    mongodb/brew/mongocli                    mongodb/brew/mongodb-database-tools
    mongodb/brew/mongodb-community           mongodb/brew/mongodb-mongocryptd
    mongodb/brew/mongodb-community-shell     mongodb/brew/mongodb-mongocryptd@4.2
    mongodb/brew/mongodb-community@3.2       mongodb/brew/mongodb-mongocryptd@4.4
    mongodb/brew/mongodb-community@3.4       mongosh
    mongodb/brew/mongodb-community@3.6       monetdb
    mongodb/brew/mongodb-community@4.0
    ==> Casks
    gcollazo-mongodb
    mongodb-compass
    mongodb-compass-isolated-edition
    mongodb-compass-readonly
    mongodb-realm-studio
    mongodbpreferencepane
    nosqlbooster-for-mongodb
    mongotron
    homebrew/cask-versions/mongodb-compass-beta
  • 목록 중에서 가장 최근 버전인 4.4를 설치
    $ brew install mongodb-community@4.4
    • m1 맥북 모델의 경우 위의 명령어로 설치하면 오류가 발생하는데, 이는 brew 명령어 앞에 arch -arm64 를 붙여주면 잘 설치된다

      $ arch -arm64 brew install mongodb-community@4.4
  • 잘 설치되었는지 확인
$ mongo -version

실행과 종료

  • MongoDB 서버 실행
    $ brew services start mongodb-community@4.4
    • 서버를 실행시키고 http://localhost:27017 에 접속 시 아래와 같은 문구가 뜨면 잘 실행된 것

      It looks like you are trying to access MongoDB over HTTP on the native driver port.
  • MongoDB 실행
    $ mongo
  • MongoDB 서버 종료
    $ brew services stop mongodb-community@4.4

M1 macbook에서 mongo 실행 명령어를 찾지 못할 때

  • mongodb 가이드 문서를 보면 인텔 프로세서와 M1 프로세서의 설치 및 환경 구성 경로가 다르다
  • brew를 이용해서 설치된 경로를 확인하고 zshrc에 PATH 등록 필요
  • brew로 관리되는 서비스 목록 확인
    $ brew services list
    Name                  Status  User  File
    mongodb-community@4.4 started hwwwa ~/Library/LaunchAgents/homebrew.mxcl.mongodb-community@4.4.plist
  • brew info 명령어로 mongodb 설치 경로 확인
    $ brew info mongodb-community@4.4
    mongodb/brew/mongodb-community@4.4: stable 4.4.13 [keg-only]
    High-performance, schema-free, document-oriented database
    https://www.mongodb.com/
    /opt/homebrew/Cellar/mongodb-community@4.4/4.4.13 (11 files, 157.6MB)
      Built from source on 2022-04-17 at 22:17:37
    From: https://github.com/mongodb/homebrew-brew/blob/HEAD/Formula/mongodb-community@4.4.rb
    ==> Dependencies
    Recommended: mongodb-database-tools ✔
    ==> Options
    --without-mongodb-database-tools
    	Build without mongodb-database-tools support
    ==> Caveats
    mongodb-community@4.4 is keg-only, which means it was not symlinked into /opt/homebrew,
    because this is an alternate version of another formula.
    
    If you need to have mongodb-community@4.4 first in your PATH, run:
      echo 'export PATH="/opt/homebrew/opt/mongodb-community@4.4/bin:$PATH"' >> ~/.zshrc
    
    To restart mongodb/brew/mongodb-community@4.4 after an upgrade:
      brew services restart mongodb/brew/mongodb-community@4.4
    Or, if you don't want/need a background service you can just run:
      mongod --config /opt/homebrew/etc/mongod.conf
    • export 해야하는 정보에 대해 If you need to have mongodb-community@4.4 first in your PATH, run: echo 'export PATH="/opt/homebrew/opt/mongodb-community@4.4/bin:$PATH"' >> ~/.zshrc 라고 알려줌
    • vi 편집기로 해당 내용 추가
      $ vi ~/.zshrc
      
      vi편집기를 이용해서 아래 내용 추가 
      ... 
      export PATH="/opt/homebrew/Cellar/mongodb-community@4.2/4.2.18/bin:$PATH" 
      ...
  • 이제 터미널을 종료하고 다시 실행시킨 후 다시 mongo 명령어를 입력하면 정상적으로 mongo shell에 접속 가능
    $ mongo 
    MongoDB shell version v4.4.13
    ...
    > 
    • exit 입력 시 종료 가능
      > exit

계정 생성

  • 생성할 계정은 모든 권한을 지닌 root 계정과 생성된 데이터베이스를 읽고 쓰는 일반 사용자 계정으로 나눌 수 있음

root 계정 생성

  • mongoDB 실행 후 admin 데이터베이스 선택
    > use admin
    switched to db admin
  • admin 데이터베이스에 root 계정 추가
    > db.createUser({ user: "mongo", pwd: "password123", roles: ["root"] })
    Successfully added user: { "user" : "mongo", "roles" : [ "root" ] }
  • root 계정으로 mongo shell 접속하기
    > mongo admin -u 아이디 -p 비번

일반 사용자 계정 생성

  • 데이터베이스 생성 및 사용
    > use db이름
    • 현재 생성된 데이터베이스 목록 확인
      > show dbs
    • 현재 사용중인 데이터베이스 확인
      > db
  • 현재 사용중인 데이터베이스를 읽고 쓸 수 있는 일반 사용자 계정 생성
    > db.createUser({ user: "youruser", pwd: "yourpassword", roles: [{ role: "dbOwner", db: "사용중인 db 이름" }] })
    • 생성된 계정은 현재 사용중인 데이터베이스에 대해서만 권한을 가지므로 db 명령어로 현재 사용중인 데이터베이스 확인 필요
    • 계정 삭제
      > db.dropUser("username")
    • 현재 데이터베이스의 사용자 출력
      > db.getUsers()

Compass

  • 터미널 환경이 아닌 GUI 툴을 이용하여 MongoDB를 사용하고 싶다면 Compass를 다운로드하여 사용할 수 있다
  • Compass 다운로드 사이트

0개의 댓글