Linux MongoDB

MongoDB는 오픈 소스 NoSQL 데이터베이스로, 문서 지향 데이터 모델을 사용하여 유연한 데이터 구조를 지원합니다. 다음은 Linux 시스템에서 MongoDB를 설치하고 관리하는 방법에 대한 단계별 설명입니다.

MongoDB 설치

1. Ubuntu에 MongoDB 설치

  1. MongoDB 공식 리포지토리를 시스템에 추가합니다.
   # GPG 키 추가
   wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -

   # 리포지토리 추가
   echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
  1. 패키지 목록을 업데이트합니다.
   sudo apt update
  1. MongoDB를 설치합니다.
   sudo apt install -y mongodb-org
  1. MongoDB 서비스를 시작하고 부팅 시 자동으로 시작되도록 설정합니다.
   sudo systemctl start mongod
   sudo systemctl enable mongod
  1. MongoDB 서비스 상태를 확인합니다.
   sudo systemctl status mongod

2. CentOS/RHEL에 MongoDB 설치

  1. MongoDB 공식 리포지토리를 시스템에 추가합니다.
   cat <<EOL | sudo tee /etc/yum.repos.d/mongodb-org-4.4.repo
   

[mongodb-org-4.4]

name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/4.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc EOL

  1. 패키지 목록을 업데이트하고 MongoDB를 설치합니다.
   sudo yum install -y mongodb-org
  1. MongoDB 서비스를 시작하고 부팅 시 자동으로 시작되도록 설정합니다.
   sudo systemctl start mongod
   sudo systemctl enable mongod
  1. MongoDB 서비스 상태를 확인합니다.
   sudo systemctl status mongod

MongoDB 기본 명령어

MongoDB 셸 접속

MongoDB 셸을 사용하여 데이터베이스에 접속합니다.

mongo

데이터베이스 관리

데이터베이스 생성 및 전환
use mydatabase
데이터베이스 목록 확인
show dbs

컬렉션 관리

컬렉션 생성
db.createCollection("mycollection")
컬렉션 목록 확인
show collections

문서 관리

문서 삽입
db.mycollection.insertOne({ name: "Alice", age: 30 })
문서 조회
db.mycollection.find()
문서 업데이트
db.mycollection.updateOne({ name: "Alice" }, { $set: { age: 31 } })
문서 삭제
db.mycollection.deleteOne({ name: "Alice" })

MongoDB 백업 및 복구

데이터베이스 백업

mongodump를 사용하여 데이터베이스를 백업합니다.

mongodump --db mydatabase --out /backup/mongodump/

데이터베이스 복구

mongorestore를 사용하여 데이터베이스를 복구합니다.

mongorestore --db mydatabase /backup/mongodump/mydatabase/

MongoDB 설정 파일

MongoDB 설정 파일은 일반적으로 /etc/mongod.conf에 위치합니다. 주요 설정을 변경할 수 있습니다.

sudo nano /etc/mongod.conf

주요 설정 옵션

  • net.bindIp: MongoDB가 수신할 IP 주소를 설정합니다. 기본값은 127.0.0.1입니다.
  • net.port: MongoDB가 사용할 포트를 설정합니다. 기본값은 27017입니다.
  • storage.dbPath: 데이터 파일의 경로를 설정합니다. 기본값은 /var/lib/mongodb입니다.
  • security.authorization: 인증을 활성화합니다.

설정 파일을 수정한 후에는 MongoDB 서비스를 재시작해야 변경 사항이 적용됩니다.

sudo systemctl restart mongod

MongoDB 사용자 관리

사용자 생성
use admin
db.createUser({
  user: "myuser",
  pwd: "mypassword",
  roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
사용자 목록 확인
use admin
db.getUsers()
사용자 삭제
use admin
db.dropUser("myuser")

MongoDB 보안 설정

MongoDB의 보안을 강화하려면 인증과 권한 관리를 설정해야 합니다. 다음은 기본적인 보안 설정 단계입니다.

  1. 설정 파일에서 인증을 활성화합니다.
   security:
     authorization: enabled
  1. MongoDB 서비스를 재시작합니다.
   sudo systemctl restart mongod
  1. 관리자 사용자 생성
   use admin
   db.createUser({
     user: "admin",
     pwd: "adminpassword",
     roles: [ { role: "root", db: "admin" } ]
   })
  1. MongoDB 셸에 관리자 사용자로 접속합니다.
   mongo -u "admin" -p "adminpassword" --authenticationDatabase "admin"

결론

이 가이드는 Linux 시스템에서 MongoDB를 설치하고 기본적으로 관리하는 방법에 대해 설명합니다. MongoDB는 유연하고 확장 가능한 NoSQL 데이터베이스 시스템으로, 다양한 애플리케이션에서 널리 사용됩니다. 위의 명령어와 절차를 통해 MongoDB를 설치하고 관리할 수 있으며, 필요에 따라 추가적인 설정과 튜닝을 통해 성능과 보안을 최적화할 수 있습니다.

Leave a Reply

Your email address will not be published. Required fields are marked *