[MongoDB] 리눅스 환경에서 MongoDB 사용하기

sorzzzzy·2021년 10월 25일
0

TIL

목록 보기
2/36
post-thumbnail

몇달 전, 하이퍼레저 패브릭을 이요해 사용자들 간 토큰을 주고받는 네트워크를 기반으로 한 웹 어플리케이션을 개발한 경험이 있다!

최근에 코드 리팩토링을 하며 이것저것 바뀐 내용이 좀 있는데 정리도 할 겸!
리눅스 환경에서MongoDB 를 설치하고 사용하는 방법을 포스팅 해보려 한다🤗

1️⃣ MongoDB 설치

먼저 우분투 버전을 확인해야 한다. 필자는 20.04.1 LTS 에 코드네임은 focal이다.
이후 몽고디비를 위한 list 파일을 생성하는데 버전에 따라 달라지기 때문에 꼭! 확인해야 한다.

이후 패키지 관리 시스템에서 사용하는 공개키를 가져온다.

앞서 말한, 몽고디비를 위한 list 파일을 생성한다! 버전에 따라 명령어가 달라지니 주의해야 한다.

MongoDB 패키지 설치를 위해, 로컬패키지 데이터베이스를 불러온다.

MongoDB 패키지를 설치한다.

MongoDB를 시작한다.

그리고 MongoDB가 성공적으로 실행되었는지 확인한다! 초록불 확인



2️⃣ 계정 생성하기

MongoDBNodejs를 연동하기 위해 Mongoose 모듈을 설치한다.
이는 이후에 나올 로그인 기능을 구현하기 위함이다!

MongoDB를 시작하고, admin 계정을 생성한다.

  1. use admin - admin 이라는 데이터베이스를 생성
  2. db.createUser({user: 'admin', pwd: 'password', roles: ['userAdminAnyDatabase', db:'admin']})
    • admin 데이터베이스에 사용자를 추가하고, 권한을 부여한다.
    • userAdminAnyDatabase어떤 데이터베이스든 사용자를 생성하고 제거할 수 있다는 것을 의미한다.
  3. db.auth('admin','password') - admin 데이터베이스에 관리자를 인증해야 하는데, 쉘에서 이와 같은 명령어를 입력해 쉽게 인증할 수 있다. 1이 나오면 성공적으로 인증됐다는 뜻이다.

📌 참고
admin 데이터 베이스에 관리자를 인증하는 또 다른 방법은 쉘에 접속하는 동시에 인증을 거치는 것이다.
➡️ mongo -u <user> -p <pwd> --authenticationDatabase admin


Ubuntu와 같은 리눅스 시스템에서 service mongod start처럼 service를 이용할 경우, config 파일을 통해 실행되는데, 이 경우 /etc/mongod.conf에 위와같이 추가하고 재시작해야 한다!

관리자 계정을 만들었으니 일반 사용자 계정도 만들어 보자.
관리자 계정을 만들었던 것처럼, 만들고자 하는 데이터베이스를 use하고 사용자를 추가한다.

dbOwner라는 권한은 해당 데이터베이스에 대한 모든 수정,삭제 권한을 가진다는 것을 의미한다.

마지막으로 로그인 기능 구현을 위해 데이터베이스에 collection, document 을 생성했다!
정보는 간단히 사용자 이름, 비밀번호, 토큰의 유효기간만 넣었다.



MongoDB를 설치하고 데이터베이스 생성 및 관리자/사용자 계정까지 만들어보았다!
다음에는 MongoDB, Nodejs를 연동하여 로그인 기능을 구현하는 포스팅을 작성해 보겠다🤗

profile
Backend Developer

0개의 댓글