다음에서 퍼옴
phoenixnap.com/kb/install-mongodb-on-centos-8
How to Install MongoDB on CentOS 8 {3 Easy Steps}
Install MongoDB database application on CentOS 8. Follow the MongoDB installation & configure, create user, and set up authentication with this tutorial.
phoenixnap.com
소개
MongoDB는 문서 기반 NoSQL 데이터베이스 애플리케이션입니다. MySQL과 달리 데이터를 다른 문서에 다르게 저장할 수 있습니다.
다른 문서의 다른 필드를 허용하며 데이터 구조는 영구적으로 고정되지 않습니다.
이 자습서에서는 CentOS 8에 MongoDB를 설치하는 방법을 알아 봅니다.
Prerequisites
- A system running 64-bit CentOS 8 Linux
- User account with sudo or root privileges
- Access to a terminal window/command line
CentOS 8에서 MongoDB 설치
Step 1: MongoDB 소프트웨어 리포지토리 추가
기본적으로 MongoDB는 공식 CentOS 리포지토리에서 사용할 수 없습니다. MongoDB 리포지토리를 추가하려면 터미널 창을 열고 MongoDB 리포지토리 구성 파일을 만듭니다.
[root@localhost ~]# gedit /etc/yum.repos.d/mongodb-org-4.2.repo |
mongodb-org-4.2.repo 파일에 다음을 입력
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
- cat 명령어로 제대로 입력되었는지 확인
[root@localhost ~]# cat /etc/yum.repos.d/mongodb-org-4.2.repo |
Step 2: Install MongoDB Software
- CentOS8에 MongoDB를 설치
[root@localhost ~]# dnf -y install mongodb-org |
Step 3: MongoDB Service 시작
- 다음 명령을 입력하여 MongoDB 서비스를 시작
[root@localhost ~]# systemctl start mongod |
- 장치를 찾을 수 없다는 오류가 발생하면 다음 명령을 실행 한 후 이전 명령을 다시 시도
[root@localhost ~]# systemctl daemon-reload |
- MongoDB를 영구적으로 사용하는 경우 다음 명령을 사용하여 부팅시 실행되도록 설정
[root@localhost ~]# systemctl enable mongod |
- MongoDB 서비스가 status 명령으로 사용하여 실행 중인지 확인
[root@localhost ~]# systemctl status mongod |
MongoDB 설정(Set Up) 및 구성(Configure)
MongoDB 관리자(Admin User) 생성
- 사용을 위해 Mongo 셸을 열어 시작합니다. 다음 명령을 입력
[root@localhost ~]# mongo |
> |
- 관리자 계정으로 전환
> use admin |
- Mongo 데이터베이스에 대한 관리자 사용자 계정을 만듭니다.
use admin # admin 데이터베이스 선택
db.createUser({
user: "mdbadmin", # 계정 이름
pwd: "password", # 비밀번호
roles: [ # 사용자에게 주어진 권한 목록. 여러 데이터베이스에 대한 권한을 할당할 수 있다.
{
role: "userAdminAnyDatabase", # built-in 권한인 root. 문자 그대로 모든 데이터베이스를 관리할 수 있다.
db: "admin" # 어떤 데이터베이스에 대한 권한인지 명시
}
]}
)
- 시스템응답은 다음과 같습니다.
- 관리자가 아닌 사용자를 생성해서 실제 작업에 사용
db.createUser({
user: "rhostem",
pwd: "password",
roles: [
{
role: "readWrite", # 읽기, 쓰기 권한
db: "test" # 위의 권한을 부여할 데이터베이스로 test를 지정
}
]}
)
- 사용자 목록 표시
> show users |
- 시스템은 방금 만든 사용자 이름에 대한 세부 정보를 표시해야합니다.
- Mongo shell 종료
> quit() [root@localhost ~]# |
MongoDB 인증 Configure
기본적으로 모든 사용자는 MongoDB에서 모든 기능을 수행 할 수 있습니다. 사용자가 작업을 수행하려면 적절한 자격 증명이 있어야합니다.
Step 1: 인증(Turn on Authentication)
- /lib/systemd/system/mongod.service 파일 편집
[root@localhost ~]# gedit /lib/systemd/system/mongod.service |
- 다음 내용을 찾을 것
Environment="OPTIONS=-f /etc/mongod.conf"
- --auth 를 추가
Environment="OPTIONS= --auth -f /etc/mongod.conf"
Step 2: 서비스 다시로드하여 변경사항 적용
- Reload the mongod.service:
[root@localhost ~]# systemctl --system daemon-reload |
[root@localhost ~]# systemctl restart mongod |
Step 3: Mongo 사용자 인증 테스트
- Mongo Shell로 전환 -> 관리자를 사용하여 모든 사용자 나열
[root@localhost ~]# mongo |
> use admin |
> show users |
- 오류 메시지가 표시됨
- 자격증명으로 인증 : 결과는 1이 나와야함
> db.auth ( 'mdbadmin' , 'password' ) 1 |
Now, try running the show users command again:
> show users |
mdbadmin및 password가 실제 사용할 사용자 이름과 암호로 변경되어있는지 확인하세요
결론
이제 CentOS 8 시스템에 MongoDB가 설치되어 있어야합니다. 또한 무단 액세스를 방지하려면 보안 관리자 계정이 있어야합니다.
TCP 포트 개방
- MongoDB는 기본적으로 27107번 포트를 사용
- 외부에서 접속할 수 있도록 방화벽 설정을 통해 27017번 포트를 개방해야 함
- 방화벽 설정
- mongodb를 찾아 체크
- 적용하기
- 설정파일 수정
[root@localhost ~]# vi /etc/mongod.conf |
- set number로 line number 표시
- 29번 라인의 bindIp앞에 #으로 주석처리
bindIp=127.0.0.1 -> bindIp=0.0.0.0
## 디비 관리 계정추가
useradd mongod
passwd mongod
## mongo 폴더 권한 설정
mkdir /var/lib/mongo/data
chown -R mongod:mongod /var/lib/mongo/
chgrp -R mongod /var/lib/mongo/
## 서비스 시작
service mongod start
## mongod 시스템 시작시 자동실행
chkconfig mongod on
– 설정파일 : /etc/mongod.conf
– 데이터 저장 폴더 : /var/lib/mongo
– 로그 저장 폴더 : /var/log/mongodb
The MongoDB 4.2 Manual — MongoDB Manual
The MongoDB 4.2 Manual Welcome to the MongoDB 4.2 Manual! MongoDB is a document database designed for ease of development and scaling. The Manual introduces key concepts in MongoDB, presents the query language, and provides operational and administrative c
docs.mongodb.com
Connect to mongodb
- 생성한 아이디로 로그인해본다( id :mdbadmin password:password 내가만든db명 : admin
[root@localhost ~]# mongo -umdbadmin -ppassword admin |
- 일반적인 접속방법
mongo --port <포트> -u "<사용자 계정>" -p "<비밀번호>" --authenticationDatabase "admin"
<client> 위의 과정 설치까지 진행
mongo -u mdbadmin -p password 192.168.111.100/admin
<WinClient> 2, 3번 권장
1) 외부에서 접속하기 전 다시 원상복귀 해주기
Environment="OPTIONS=-f /etc/mongod.conf"
☞ mongodb-win32-i386-2.6.5-signed 설치함
☞ 설치폴더로 가서, mongo --host 192.168.111.100
2)
https://www.mongodbmanager.com/ (Windows 32bit에서 사용가능한 프로그램)
NoSQL Manager Group
NoSQL Manager for MongoDB - desktop tool for Mongo database management, administration and development.
www.mongodbmanager.com
☞ Download- NoSQL Manager for MongoDB Freeware 설치
☞ Host에 서버 ip주소넣기
3) 1번 해결
Window 32bit MongoDB 설치하기
1. MongoDB 다운로드 Linux와 Mac 운영체제와는 다르게 설치파일을 다운로드받아 설치합니다. MongoDB 다운로드 링크 https://www.mongodb.com/download-center 64bit의 경우 바로 DOWNLOAD 버튼을 클릭하여 최..
supdev.tistory.com
Server 3.4버전 (위의 과정 숫자만 3.4로 해서)
WinClient 3.2 받고 나서
WinClient에서 설치 후
- 고급 시스템 설정-환경 변수- (윗 칸) Path 편집- 새로만들기
- 다운받은 위치 추가(C:\Program Files\MongoDB\Server\3.2\bin)- 확인
-cmd 창 켜서
mkdir C:\data\db
mongod -- dbpath C:\data\db
mongod --storageEngine=mmapv1
cmd창에 mongo를 친 후
mongo
mkdir C:\datamkdi
r C:\data
cmd창 하나 더 열어서
mongo 192.168.111.100/admin -u mdbadmin -p password
접속
그 이후로는 cmd창 하나에 바로 접속 가능
mongo 192.168.111.100/admin -u mdbadmin -p password
'Linux' 카테고리의 다른 글
MongoDB on CentOS8 (0) | 2020.10.08 |
---|---|
리눅스 정리 (0) | 2020.10.08 |
mc (0) | 2020.10.08 |
FTP 서버 설치와 운영 (0) | 2020.10.07 |
CentOS8 + MongoDB (0) | 2020.10.07 |