로컬에 MongoDB 설치 메모 (MacOS)
MacOS에 Homebrew를 이용해서 MongoDB를 설치하는 순서와 간단한 메모입니다.
설치
-
Homebrew로 인스톨
패키지 업데이트 후, MongoDB 인스톨하기
$ brew update $ brew install mongodb
인스톨 중에 에러가 나는 경우 brew doctor 명령어를 이용해서 에러 조사 후 수정할 수 있습니다.
-
설치 확인
정상적으로 인스톨 되었는지 확인하기
$ mongo --version # 결과 : MongoDB shell version v4.0.3 git version: 7ea530946fa7880364d88c8d8b6026bbc9ffa48c allocator: system modules: none build environment: distarch: x86_64 target_arch: x86_64
-
설정 파일
설정 파일은 /usr/local/etc/mongod.conf 에서 확인 가능합니다.
로그와 데이터를 저장하고자 하는 위치를 path, dbPath로 지정 가능합니다.
systemLog: destination: file path: /usr/local/var/log/mongodb/mongo.log logAppend: true storage: dbPath: /usr/local/var/mongodb net: bindIp: 127.0.0.1
-
MongoDB 실행 및 종료
brew를 이용해서 서비스 형태로 MongoDB를 실행할 수 있습니다.
이렇게 서비스 형태로 실행할 경우, 위의 mongod.conf에서 설정한 대로 환경을 구성하게 됩니다.
정상적으로 실행되면 path, dbPath로 지정한 디렉토리에 관련 파일이 자동 생성됩니다.
$ brew services start mongodb
정상적으로 실행 되었는지 확인하기
$ ps -ef | grep mongo # 결과 : 501 61303 1 0 4:32AM ?? 0:00.82 /usr/local/opt/mongodb/bin/mongod --config /usr/local/etc/mongod.conf
하기의 명령어를 이용해서 MongoDB를 종료할 수 있습니다.
$ brew services stop mongodb
관리 유저 등록과 인증 기능 설정
-
관리 유저 등록
# MongoDB에 접속 $ mongo # DB 리스트 확인 $ show dbs # admin DB 사용 $ use admin # 결과 : # switched to db admin # 관리 유저 등록 $ db.createUser({ user:"admin", pwd:"XXXXXXXX", roles:[{role:"root", db:"admin"}] }) # 결과 : #Successfully added user: { # "user" : "admin", # "roles" : [ # { # "role" : "root", # "db" : "admin" # } # ] #} # 생성된 유저 확인 $ db.getUsers() # 결과 : #[ # { # "_id" : "admin.admin", # "user" : "admin", # "db" : "admin", # "roles" : [ # { # "role" : "root", # "db" : "admin" # } # ], # "mechanisms" : [ # "SCRAM-SHA-1", # "SCRAM-SHA-256" # ] # } #]
-
인증 기능 설정
인증 기능을 설정하기 위해서 설정파일을 수정해 주어야 합니다.
# 설정 파일에 진입 $ sudo vi /usr/local/etc/mongod.conf # 설정파일 제일 밑에 하기의 구문을 추가 security: authorization: enabled # MongoDB 재시작 $ brew services restart mongodb
-
인증 기능 확인 및 MongoDB에 접속
인증 기능을 설정한 MongoDB에 접속하는 방법은 두가지가 있습니다.
- 생성한 관리 유저를 통해서 MongoDB에 접속하기
- MongoDB에 접속한 후, 생성한 관리 유저로 로그인하기
첫 번째 방법# admin 유저로 admin DB에 접속하기 $ mongo -u "admin" -p "XXXXXXXX" --authenticationDatabase "admin"
두 번째 방법# MongoDB에 접속 $ mongo # admin DB 사용 $ use admin # admin 유저로 로그인(이용) $ db.auth("admin", "XXXXXXXX" ) # 1이 return되면 로그인 성공
첫 번째 방법을 다른 유저들과 같이 사용하는 서버에서 사용하게 될 경우, 비밀번호가 노출되므로 사용하지 않는 것이 좋습니다.
MongoDB에 관한 포스트 모음 : Tags - MongoDB
Written on June 9, 2019