다음에서 퍼옴
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
![](https://blog.kakaocdn.net/dn/bSmCKf/btqKdFxK1Ve/WZwqFqK8IH2pdSwcpxwum0/img.png)
- cat 명령어로 제대로 입력되었는지 확인
[root@localhost ~]# cat /etc/yum.repos.d/mongodb-org-4.2.repo |
![](https://blog.kakaocdn.net/dn/mkHyZ/btqKfqG9Lxi/4N3Su2EkUNBKQA5vKHfMqk/img.png)
Step 2: Install MongoDB Software
- CentOS8에 MongoDB를 설치
[root@localhost ~]# dnf -y install mongodb-org |
![](https://blog.kakaocdn.net/dn/u4Oki/btqKbXMHmSa/x5xRHGNJFH7JJSz2w0Lv11/img.png)
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)
- 사용을 위해 Mongo 셸을 열어 시작합니다. 다음 명령을 입력
[root@localhost ~]# mongo |
> |
- 관리자 계정으로 전환
> use admin |
![](https://blog.kakaocdn.net/dn/blsJUg/btqJ6c4vMkK/JLqCbEHkfjLGNAiDN04r5k/img.png)
- Mongo 데이터베이스에 대한 관리자 사용자 계정을 만듭니다.
use admin # admin 데이터베이스 선택
db.createUser({
user: "mdbadmin", # 계정 이름
pwd: "password", # 비밀번호
roles: [ # 사용자에게 주어진 권한 목록. 여러 데이터베이스에 대한 권한을 할당할 수 있다.
{
role: "userAdminAnyDatabase", # built-in 권한인 root. 문자 그대로 모든 데이터베이스를 관리할 수 있다.
db: "admin" # 어떤 데이터베이스에 대한 권한인지 명시
}
]}
)
![](https://blog.kakaocdn.net/dn/c7FDAq/btqJ3g7nnL9/119XTAUuzDmCHPKViqTyk0/img.png)
- 시스템응답은 다음과 같습니다.
![](https://blog.kakaocdn.net/dn/NpI8r/btqKibCVq9I/rm0Rl1W7ts4Kxmt3UbqxvK/img.png)
- 관리자가 아닌 사용자를 생성해서 실제 작업에 사용
db.createUser({
user: "rhostem",
pwd: "password",
roles: [
{
role: "readWrite", # 읽기, 쓰기 권한
db: "test" # 위의 권한을 부여할 데이터베이스로 test를 지정
}
]}
)
- 사용자 목록 표시
> show users |
- 시스템은 방금 만든 사용자 이름에 대한 세부 정보를 표시해야합니다.
![](https://blog.kakaocdn.net/dn/cxmAjk/btqKdFrv6gK/kEmnmdlG15UAzX7BlWRlAk/img.png)
- Mongo shell 종료
> quit() [root@localhost ~]# |
![](https://blog.kakaocdn.net/dn/zF9Hl/btqJ928yWZr/jMXXPTVSblscysajUZMyAk/img.png)
MongoDB 인증 Configure
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"
![](https://blog.kakaocdn.net/dn/luwhL/btqJ92nkHuJ/5pJksJzrX7FKqCkl0p8LiK/img.png)
Step 2: 서비스 다시로드하여 변경사항 적용
[root@localhost ~]# systemctl --system daemon-reload |
[root@localhost ~]# systemctl restart mongod |
Step 3: Mongo 사용자 인증 테스트
[root@localhost ~]# mongo |
![](https://blog.kakaocdn.net/dn/UZPru/btqKbWfVCM6/92hrwrBayf7Ib51eBwtCM0/img.png)
> use admin |
> show users |
- 오류 메시지가 표시됨
![](https://blog.kakaocdn.net/dn/dfgcUC/btqKjc2FNw7/YXtQS3fTHIC2tKwFeeKQH1/img.png)
- 자격증명으로 인증 : 결과는 1이 나와야함
> db.auth ( 'mdbadmin' , 'password' ) 1 |
![](https://blog.kakaocdn.net/dn/YcIUF/btqKgFqYzl1/bYdaRhFWBLLPBLPRKnOdek/img.png)
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"
'Embedded > LINUX' 카테고리의 다른 글
TABLE - GRAY (0) | 2020.09.23 |
---|