이 블로그에서 우리는 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에 대한 원격 연결 활성화
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"
이 오류를 도와주세요.
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