웹사이트 검색

Ubuntu 18.04에 MongoDB를 설치하는 방법


MongoDB의 최첨단 기술을 기반으로 고성능 데이터 지속성, 고가용성 및 자동 확장을 위해 설계된 오픈 소스 최신 문서 데이터베이스 관리 시스템입니다. NoSQL. MongoDB에서 레코드는 필드와 값 쌍으로 구성된 데이터 구조인 문서입니다(MongoDB 문서는 JSON 개체와 유사합니다).

고성능과 뛰어난 확장성 기능을 제공하기 때문에 강력하고 중요하며 가용성이 높은 데이터베이스가 필요한 최신 애플리케이션을 구축하는 데 사용되고 있습니다.

이 글에서는 Ubuntu 18.04에서 MongoDB를 설치하고 서비스를 관리하며 기본 인증을 설정하는 방법을 설명합니다.

중요: MongoDB 개발자는 64비트 LTS(장기 지원) Ubuntu 릴리스용 패키지만 제공합니다. Strong>14.04 LTS(신뢰할 수 있음), 16.04 LTS(xenial) 등.

추가 읽기: Ubuntu 16.04/14.04 LTS에 MongoDB를 설치하는 방법

1단계: Ubuntu 18.04에 MongoDB 설치

1. Ubuntu의 공식 소프트웨어 패키지 저장소는 최신 버전의 MongoDB와 함께 제공되며 APT 패키지 관리자를 사용하여 쉽게 설치할 수 있습니다.

먼저 최신 버전의 저장소 목록을 갖도록 시스템 소프트웨어 패키지 캐시를 업데이트하십시오.

sudo apt update

2. 다음으로 mongo-tools, mongodb-clients, mongodb-server<와 같은 여러 다른 패키지가 포함된 MongoDB 패키지를 설치합니다.mongodb-server-core.

sudo apt install mongodb

3. 성공적으로 설치되면 MongoDB 서비스가 systemd를 통해 자동으로 시작되고 프로세스는 포트 27017에서 수신 대기합니다. 표시된 대로 systemctl 명령을 사용하여 상태를 확인할 수 있습니다.

sudo systemctl status mongodb

2단계: MongoDB 서비스 관리

4. MongoDB 설치는 시스템 서비스로 제공되며 표시된 대로 표준 시스템 명령을 통해 쉽게 관리할 수 있습니다.

MongoDB 서비스 실행을 중지하려면 다음 명령을 실행합니다.

sudo systemctl stop mongodb	

MongoDB 서비스를 시작하려면 다음 명령을 입력하십시오.

sudo systemctl start mongodb

MongoDB 서비스를 다시 시작하려면 다음 명령을 입력하십시오.

sudo systemctl restart mongodb	

자동으로 시작된 MongoDB 서비스를 비활성화하려면 다음 명령을 입력하십시오.

sudo systemctl disable mongodb	

MongoDB 서비스를 다시 활성화하려면 다음 명령을 입력하십시오.

sudo systemctl enable mongodb	

3단계: 방화벽에서 원격 MongoDB 액세스 활성화

5. 기본적으로 MongoDB는 포트 27017에서 실행되므로 사용할 수 있는 모든 곳에서 액세스할 수 있습니다.

sudo ufw allow 27017

그러나 어디에서나 MongoDB에 액세스할 수 있으면 데이터베이스 데이터에 제한 없이 액세스할 수 있습니다. 따라서 다음 명령을 사용하여 기본 MongoDB 포트에 특정 IP 주소 위치에 대한 액세스 권한을 부여하는 것이 좋습니다.

sudo ufw allow from your_server_IP/32 to any port 27017 
sudo ufw status

6. 기본적으로 포트 27017은 로컬 주소 127.0.0.1에서만 수신 대기합니다. 원격 MongoDB 연결을 허용하려면 표시된 대로 /etc/mongodb.conf 구성 파일에 서버 IP 주소를 추가해야 합니다.

bind_ip = 127.0.0.1,your_server_ip
#port = 27017

파일을 저장하고 편집기를 종료한 후 MongoDB를 다시 시작하세요.

sudo systemctl restart mongodb

4단계: MongoDB 데이터베이스 루트 사용자 및 비밀번호 생성

7. 기본적으로 MongoDB는 사용자 인증이 비활성화된 상태로 제공되므로 액세스 제어 없이 시작됩니다. mongo 셸을 시작하려면 다음 명령을 실행하세요.

mongo 

8. mongo 셸에 연결하면 다음 명령을 사용하여 사용 가능한 모든 데이터베이스를 나열할 수 있습니다.

> show dbs

9. MongoDB 배포에 대한 액세스 제어를 활성화하여 인증을 시행합니다. 사용자는 데이터베이스 서버에 연결할 때마다 자신을 식별해야 합니다.

MongoDB는 기본적으로 Salted Challenge Response 인증 메커니즘(SCRAM) 인증 메커니즘을 사용합니다. MongoDB는 SCRAM을 사용하여 사용자 이름, 비밀번호 및 인증 데이터베이스(사용자가 생성된 데이터베이스와 사용자 이름이 사용자를 식별하는 데 사용됨)에 대해 제공된 사용자 자격 증명을 확인합니다.

admin 데이터베이스에서 사용자 관리자(MySQL/MariaDB의 루트 사용자와 유사)를 생성해야 합니다. 이 사용자는 사용자 생성, 사용자에게 역할 부여 또는 취소, 사용자 정의 역할 생성 또는 수정 등 사용자 및 역할을 관리할 수 있습니다.

먼저 admin 데이터베이스로 전환한 후 다음 명령을 사용하여 루트 사용자를 만듭니다.

> use admin 
> db.createUser({user:"root", pwd:"=@!#@%$admin1", roles:[{role:"root", db:"admin"}]})

이제 다음에 설명된 대로 인증을 활성화하려면 mongo 쉘을 종료하세요.

10. mongodb 인스턴스가 --auth 명령줄 옵션 없이 시작되었습니다. /lib/systemd/system/mongod.service 파일을 편집하여 사용자 인증을 활성화해야 하며, 먼저 편집할 파일을 엽니다.

sudo vim /lib/systemd/system/mongodb.service 

[Service] 구성 섹션에서 ExecStart 매개변수를 찾습니다.

ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS

다음과 같이 변경합니다.

ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS

파일을 저장하고 종료하십시오.

11. 8. 구성 파일을 변경한 후 'systemctl daemon-reload'를 실행하여 유닛을 다시 로드하고 MongoDB 서비스를 다시 시작하여 다음과 같이 상태를 확인합니다.

systemctl daemon-reload
sudo systemctl restart mongodb	
sudo systemctl status mongodb	

12. 이제 mongodb에 연결하려고 하면 MongoDB 사용자로 인증해야 합니다. 예를 들어:

mongo -u "root" -p --authenticationDatabase "admin"

참고: 비밀번호는 쉘 기록 파일에 저장되고 나중에 공격자가 볼 수 있으므로 명령줄에 비밀번호를 입력하지 않는 것이 좋습니다.

그게 다야! MongoDB는 고성능, 고가용성 및 자동 확장 기능을 제공하는 오픈소스 최신 No-SQL 데이터베이스 관리 시스템입니다.

이 문서에서는 Ubuntu 18.04에서 MongoDB를 설치하고 시작하는 방법을 설명했습니다. 문의사항이 있는 경우 아래 의견 양식을 사용하여 문의해 주세요.