웹사이트 검색

CentOS 7에서 MongoDB를 설치하고 구성하는 방법


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • 센트OS 8
  • 센트OS 7

이 페이지에서

  1. 전제 조건
  2. 1단계 - CentOS에 MongoDB 저장소 추가
  3. 2단계 - MongoDB 설치
  4. 3단계 - MongoDB 오류 수정
  5. 4단계 - MongoDB 관리자 사용자 생성
  6. 5단계 - MongoDB에서 사용자 인증 활성화\n
  7. 링크

MongoDB는 고성능, 고가용성 및 자동 확장을 제공하는 NoSQL 데이터베이스입니다. NoSQL 데이터베이스는 MySQL 또는 PostgreSQL과 달리 저장된 데이터를 검색하거나 조작하기 위한 SQL(Structured Query Language)을 지원하지 않음을 의미합니다. MongoDB는 테이블에 데이터를 저장하지 않고 대신 JSON과 유사한 "문서" 구조에 데이터를 저장합니다(MongoDB에서는 BSON이라고 함). MongoDB는 6년 전인 2009년에 처음 소개되었습니다. 현재 MongoDB MongoDB Inc.에서 개발했습니다.

이 튜토리얼에서는 CentOS 7 서버에 MongoDB 3.2(stable)를 설치하고 구성하는 방법을 안내합니다. MongoDB에 대한 관리자 사용자를 추가 및 구성하고 MongoDB 서비스에 대한 인증을 구성합니다.

전제 조건

  • 센트OS 7
  • 루트 권한\n

이 자습서에서 수행할 작업:

  1. MongoDB 저장소를 추가합니다.\n
  2. MongoDB 설치.
  3. 일부 MongoDB 오류를 수정합니다.\n
  4. 관리자 사용자를 만듭니다.
  5. MongoDB 인증 및 테스트를 활성화합니다.\n

1단계 - CentOS에 MongoDB 리포지토리 추가

ssh 루트 계정으로 CentOS 7 서버에 연결합니다.

ssh 

새 CentOS 저장소를 추가하려면 yum.repos.d 디렉토리로 이동해야 합니다. 해당 디렉토리로 이동하여 vim을 사용하여 새 리포지토리 파일 mongodb-org-3.2.repo를 만듭니다.

cd /etc/yum.repos.d/
vim mongodb-org-3.2.repo

아래 표시된 MongoDB 리포지토리 구성을 붙여넣습니다.

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

파일을 저장하고 편집기를 종료합니다.

2단계 - MongoDB 설치

MongoDB 리포지토리를 추가했습니다. 이제 서버의 리포지토리 목록을 확인하여 목록에서 MongoDB 리포지토리를 사용할 수 있는지 확인합니다.

이렇게 하려면 루트로 아래 명령을 실행하십시오.

yum repolist

아래에서 결과를 볼 수 있습니다. MongoDB 리포지토리가 목록에 있습니다.

다음으로 yum 명령으로 MongoDB를 설치합니다.

yum -y install mongodb-org

설치가 완료되면 다음 systemctl 명령으로 MongoDB를 시작합니다.

systemctl start mongod

포트 27017이 열려 있는지 확인하여 MongoDB가 실행 중인지 확인합니다.

netstat -plntu

그리고 mongodb 서비스가 활성화되어 있는지 확인하십시오.

systemctl status mongod

3단계 - MongoDB 오류 수정

몽고DB가 설치되었습니다. 이제 아래 명령어를 사용하여 mongodb 셸에 액세스할 수 있습니다.

mongo

서버의 ulimit 구성에 대해 이 오류가 표시될 수 있습니다.

** WARNING: soft rlimits too low. rlimits set to 4096 processes, 64000 files. Number of processes should be at least 32000...

Ulimits 또는 User limits는 사용자가 사용할 수 있는 시스템 전체 리소스의 양을 정의합니다.

이 문제를 해결하려면 사용자 mongod의 ulimit 구성을 늘려야 합니다.

CentOS 7 서버에서 MongoDB 데이터베이스는 사용자 mongod로 실행됩니다. 보안 디렉터리로 이동하여 limits.conf 구성 파일을 편집합니다.

cd /etc/security/
vim limits.conf

mongod 사용자의 제한을 64000으로 늘리겠습니다. 프로세스 수 또는 nproc 및 열린 파일 수 또는 nofile을 64000으로 늘리겠습니다.

아래의 새 구성을 파일 끝에 붙여넣습니다.

mongod soft nproc 64000
mongod hard nproc 64000
mongod soft nofile 64000
mongod hard nofile 64000

limits.conf 파일을 저장합니다.

아래의 sysctl 명령을 실행하여 변경된 제한을 시스템에 적용하십시오.

sysctl -p

그런 다음 MongoDB 서비스를 다시 시작하고 mongo 셸에 다시 액세스하면 오류가 사라집니다.

systemctl restart mongod
mongo

4단계 - MongoDB 관리자 사용자 생성

이 단계에서는 mongo 셸에서 UserAdminAnyDatabase 역할을 가진 MongoDB용 새 사용자 "admin"을 생성합니다.

mongodb 셸을 엽니다.

mongo

비밀번호 admin123을 사용하여 admin이라는 새 사용자 관리자를 생성하겠습니다. 서버에서 보안 암호를 사용하십시오. 그런 다음 사용자의 역할을 UserAdminAnyDatabase로 구성합니다.

데이터베이스 관리자로 전환하십시오.

use admin

아래에 MongoDB 쿼리를 입력하여 새 관리자 사용자를 만듭니다.

db.createUser(
  {
    user: "admin",
    pwd: "admin123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

다음으로 아래의 MongoDB 쿼리로 사용자가 생성되었는지 확인합니다.

show users

MongoDB 관리자 사용자가 생성되었습니다.

5단계 - MongoDB에서 사용자 인증 활성화

이 단계에서는 충분한 권한이 없는 다른 사용자가 데이터베이스의 데이터를 볼 수 없도록 사용자 인증을 활성화합니다.

CentOS 7 서버에서 MongoDB는 /etc/init.d/ 디렉토리의 초기화 스크립트를 사용하여 systemd에서 실행됩니다. --auth 옵션을 사용하여 mongodb 서비스를 강제 실행하도록 해당 스크립트를 편집합니다.

/etc/init.d/ 디렉토리로 이동하여 "mongod" 파일을 편집합니다.

cd /etc/init.d/
vim mongod

15행에서 "OPTION" 변수를 찾을 수 있으며 거기에 "mongod" 옵션을 추가할 것입니다.

OPTIONS=" --auth -f $CONFIGFILE"

파일을 저장합니다.

systemd 서비스를 다시 로드하고 MongoDB를 다시 시작합니다.

systemctl daemon-reload
systemctl restart mongod

다음으로 mongo 셸에 로그인하고 admin 데이터베이스로 전환하여 구성을 테스트한 다음 admin 사용자를 확인해야 합니다.

mongo

use admin
show users

데이터베이스 관리자에서 명령의 무단 실행에 대한 오류가 표시됩니다. 이제 인증을 위해 db.auth() 명령을 사용해야 합니다.

db.auth('admin', 'admin123')

이제 역할과 권한이 있는 사용자를 볼 수 있습니다.

MongoDB 3.2는 CentOS 7 서버에 설치 및 구성되었습니다.

연결

  • https://docs.mongodb.com/manual/