Ubuntu에 MongoDB 데이터베이스 시스템을 설치하는 방법은 무엇입니까?

MongoDB의

이 블로그에서 우리는 Xampp 또는 Lampp에 일반적으로 포함되는 시스템이므로 MariaDB 및 MySQL이 가장 인기있는 데이터베이스 시스템에 대해 이야기했습니다. 이번에는 다른 시스템 몽고DB.

MongoDB는 오픈 소스 문서 지향 NoSQL 데이터베이스 시스템, 이것은 고성능 데이터 지속성을 위해 설계된 최신 문서 데이터베이스 관리 시스템 NoSQL 기술의 기술을 기반으로 한 고 가용성 및 자동 확장.

관계형 데이터베이스에서 수행되는 것처럼 데이터를 테이블에 저장하는 대신 MongoDB는 데이터 구조를 문서에 저장합니다., 이는 필드 및 값 쌍으로 구성된 데이터 구조입니다 (MongoDB 문서는 JSON 객체와 유사 함).

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

Ubuntu에 MongoDB 설치

이 데이터베이스 시스템을 시스템에 설치하려면 터미널을 열고 다음 명령을 실행하기 만하면됩니다.

sudo apt install mongodb

설치 완료, MongoDB 서비스는 systemd를 통해 자동으로 시작됩니다. 프로세스는 포트 27017에서 실행됩니다. 다음 명령을 사용하여 상태를 확인할 수 있습니다.

sudo systemctl status mongodb

그렇지 않은 경우 다음 명령으로 강제로 시작할 수 있습니다.

sudo systemctl start mongodb

MongoDB에 대한 원격 연결 활성화

몽고DB 1

MongoDB 데이터베이스 시스템은 기본적으로 열어야하는 포트 27017을 사용합니다. 원격 연결을 허용하려면 다음 명령으로 만 활성화합니다.

sudo ufw allow 27017

기본적으로 포트 27017은 로컬 주소 127.0.0.1에서만 액세스 할 수 있습니다. MongoDB에 대한 원격 연결을 허용하려면 파일에 서버의 IP 주소를 추가해야합니다. /etc/mongodb.conf

다음으로 편집하십시오.

sudo nano

그리고 다음과 비슷한 것을 볼 수 있습니다.

bind_ip = 127.0.0.1, your_server_ip

#port = 27,017

서버의 데이터로 편집합니다.

어디서나 MongoDB에 대한 액세스를 허용하여 데이터베이스의 데이터에 대한 무제한 액세스를 제공합니다. 따라서 MongoDB 포트의 위치 별 기본 IP 주소에 대한 액세스 권한을 부여하는 것이 좋습니다.

sudo ufw allow from your_server_IP/32 to any port 27017

sudo ufw status

이 작업이 완료되면 서비스를 다시 시작하면 새 변경 사항이 처음에로드됩니다. 다음을 사용하여이를 수행합니다.

sudo systemctl restart mongodb

MongoDB에서 비밀번호로 사용자 만들기

기본적으로 데이터베이스에는 매우 간단한 액세스 권한이 있으므로이를 강화하기 위해 암호로 사용자를 만들 수 있습니다.

MongoDB는 SCRAM 인증 메커니즘을 사용합니다. 기본적으로. 시스템에서 SCRAM을 사용하면 사용자 이름, 암호 및 인증 데이터베이스에 대해 제공된 사용자 자격 증명을 확인합니다.

다음 명령으로 데이터베이스 콘솔을 시작하십시오.

Mongo

다음을 사용하여 기존 데이터베이스 목록을 만들 수 있습니다.

show dbs

사용자와 기능을 관리 할 수있는 사용자를 만들 수 있습니다. 사용자 생성, 사용자 역할 부여 또는 취소, 사용자 지정 역할 생성 또는 수정 등이 있습니다.

그냥 입력

use admin

그리고 다음 명령으로 사용자를 만듭니다.에서 사용자의 이름 "root"와 비밀번호 "password"를 적절하다고 판단되는 액세스 권한으로 대체합니다.

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

이 작업이 완료되면 인증 방법을 활성화해야합니다. 이를 위해 다음 파일을 편집합니다.

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

그리고 우리는 다음 줄을 찾을 것입니다:

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

다음과 같이 편집하십시오.

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

지금 우리는 단순히 데이터베이스에서 재부팅합니다.

systemctl daemon-reload

sudo systemctl restart mongodb

sudo systemctl status mongodb              

Y 다음을 사용하여 인증 방법을 테스트합니다.

mongo -u "usuario" -p --authenticationDatabase "contraseña"

코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   감지 가능

    이 오류를 도와주세요.

    2021-03-24T21 : 33 : 16.233 + 0000 E QUERY [thread1] 오류 : listDatabases 실패 : {
    «확인»: 0,
    "Errmsg": "관리자에게 {listDatabases : 1.0, $ db : \"admin \ "}"명령을 실행할 권한이 없습니다.
    "코드": 13,
    "CodeName": "승인되지 않음"
    }:
    _getErrorWithCode@src/mongo/shell/utils.js : 25:13
    Mongo.prototype.getDBs@src/mongo/shell/mongo.js : 65 : 1
    shellHelper.show@src/mongo/shell/utils.js : 816 : 19
    shellHelper@src/mongo/shell/utils.js : 706 : 15
    @ (shellhelp2) : 1 : 1