MongoDB는 오픈 소스 NoSQL 데이터베이스로, 문서 지향 데이터 모델을 사용하여 유연한 데이터 구조를 지원합니다. 다음은 Linux 시스템에서 MongoDB를 설치하고 관리하는 방법에 대한 단계별 설명입니다.
MongoDB 설치
1. Ubuntu에 MongoDB 설치
- 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
- 패키지 목록을 업데이트합니다.
sudo apt update
- MongoDB를 설치합니다.
sudo apt install -y mongodb-org
- MongoDB 서비스를 시작하고 부팅 시 자동으로 시작되도록 설정합니다.
sudo systemctl start mongod
sudo systemctl enable mongod
- MongoDB 서비스 상태를 확인합니다.
sudo systemctl status mongod
2. CentOS/RHEL에 MongoDB 설치
- 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
- 패키지 목록을 업데이트하고 MongoDB를 설치합니다.
sudo yum install -y mongodb-org
- MongoDB 서비스를 시작하고 부팅 시 자동으로 시작되도록 설정합니다.
sudo systemctl start mongod
sudo systemctl enable mongod
- 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의 보안을 강화하려면 인증과 권한 관리를 설정해야 합니다. 다음은 기본적인 보안 설정 단계입니다.
- 설정 파일에서 인증을 활성화합니다.
security:
authorization: enabled
- MongoDB 서비스를 재시작합니다.
sudo systemctl restart mongod
- 관리자 사용자 생성
use admin
db.createUser({
user: "admin",
pwd: "adminpassword",
roles: [ { role: "root", db: "admin" } ]
})
- MongoDB 셸에 관리자 사용자로 접속합니다.
mongo -u "admin" -p "adminpassword" --authenticationDatabase "admin"
결론
이 가이드는 Linux 시스템에서 MongoDB를 설치하고 기본적으로 관리하는 방법에 대해 설명합니다. MongoDB는 유연하고 확장 가능한 NoSQL 데이터베이스 시스템으로, 다양한 애플리케이션에서 널리 사용됩니다. 위의 명령어와 절차를 통해 MongoDB를 설치하고 관리할 수 있으며, 필요에 따라 추가적인 설정과 튜닝을 통해 성능과 보안을 최적화할 수 있습니다.