우분투에서 MongoDB 설치하기

이 문서는 드래프트 문서이다. 사용하는데 크게 문제는 없으나, 일부 내용이 변경될 수 있다.

가장 인기 있는 리눅스 배포판인 Ubuntu 16.04 LTS(64bit) 를 기본으로 MongoDB를 설치한다. 많은 분들이 Ubuntu 로 서버를 구축하고 있으며, APT (for Advanced Package Tool) 를 통해 손쉽게 MongoDB 를 설치할 수 있고, 특히 AWS 나 Azure를 이용하여 서비스를 한다면 거의 기본적으로 선택하게 될 리눅스 배포판이다.

설치 방법은 간단하다.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

sudo apt update

sudo apt install -y mongodb-org
그 다음에는 MongoDB 를 실행하여 보자.
sudo service mongodb start

MongoDB가 정상적으로 데몬으로 등록되었는지 확인하려면

sudo service mongodb status

그럼 이제 mongo  명령어를 이용하여 MongoDB에 접속해 보겠다.

mongo

 

정상적으로 mongodb 가 접속이 되었다면 이제 MongoDB 를 사용할 수 있다.
mongodb를 실제 서비스에 적용하려면 비밀번호 인증을 거쳐서 접근할 수 있어야 하기 때문에 (물론 비밀번호를 걸지 않고 서비스는 가능하다.) 사용자 계정을 추가하고 삭제 및 관리, Database를 관리할 수 있는 root 계정이 필요하다.
그러면 이제 root계정을 만들어 보겠다. admin database 에 접근해서 root user 를 생성해 보겠다.

use admin
db.createUser({user: "root", pwd: "mypassword", roles: [{ role: "root", db: "admin" }] });

정상적으로 root 계정이 설정되었다면 /etc/mongod.conf 에서 MongoDB 에서

security:
 authorization: enabled

authorization 을 enabled 해준다.  key: value의 형식으로 되어 있는 YAML 문법으로 작성하기를 권장한다. 이미 기본으로 만들어진 설정파일이 YAML 로 되어 있을 것이므로 주석처리를 해제해주고 위와 같이 작성해 주면 된다.

다시 실행해 준다.

service mongod restart

이제 내 계정을 만들어 준다. 이 때 내가 원하는 db명을 선택해 준다.

use app    #app 대신에 내가 만들 db명을 선택
db.createUser(
 { user: "app",
 pwd: "mypassword",
 roles: ['readWrite','userAdmin'] } )

정상적으로 만들어 졌다면 quit 명령어로 빠져나오고

다시 접근해보자.

mongo -uapp -pmypassword app

정상적으로 접근이 되는 것을 확인할 수 있다.

 

다음 목차

  1. MongoDB 와 방화벽
  2. 기본적인 MongoDB 명령어 및 사용 방법
  3. Studio 3T(MongoChef), Robomongo, MongoHub 등의 MongoDB Client 를 이용해서 MongoDB 를 내 컴퓨터에서 관리하는 방법
  4. 백업 및 복구하는 방법
  5. Replica Set(RS)  으로 만드는 방법
  6. mongos 와 복수의 mongos 운영 전략
  7. 단일 샤드로 운영하기 (Config server 생성, Replica set)
  8. Replica Set으로 된 샤드 추가하기
  9. Arbiter Server 와 투표 알고리즘에 대해
  10. AWS 를 이용한 실제 구축
  11. node.js 에서 실제 접속해 보기(단일 서버, 레플리카 셋, 단일 샤드, 복수샤드에서의 운영방법)

 

 

답글 남기기