<참조> https://www.linuxhelp.com/how-to-install-and-configure-mongodb-on-centos-8-1
CentOS 8, MongoDB 몽고디비 설치
정리. 수알치 오상문
https://www.youtube.com/watch?v=MynOXqXfPpQ
MongoDB는 오픈소스 NoSQL 데이터베이스 시스템이다. 즉, SQL 기반의 MySQL, PostgreSQL과는 사용법이나 데이터베이스 구조가 다르다. JSON 같은 구조의 도큐먼트를 저장하기에 스키마를 미리 작성할 필요가 없다. 여기서는 CentOS 8.1 운영체제에서 MongoDB를 다루는 방법을 설명하고자 한다.
설치 방법:
1. /etc/yum.repos.d/ 디렉터리에 mongodb-org.repo를 작성한다.
그러면 MongoDB repository를 사용 가능하게 된다.
Vi /etc/yum.repos.d/mongodb-org.repo 또는 Vim /etc/yum.repos.d/mongodb-org.repo
[참고] vi 편집기를 이용하는 경우
'i' 키를 누르고 파일 내용을 작성하고
<Esc> 키를 누르고, ':' 키를 누른 후
'wq'를 눌러서 펴집기를 종료하면서 파일을 저장한다.
[root@linuxhelp ~]# Vim /etc/yum.repos.d/mongodb-org.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
2. mongodb-org meta-package를 설치한다(몽고디비 설치).
sudo dnf install mongodb-org
[root@linuxhelp ~]# sudo dnf install mongodb-org
CentOS Linux 8 - AppStream 294 kB/s | 6.3 MB 00:21
CentOS Linux 8 - BaseOS 551 kB/s | 2.3 MB 00:04
CentOS Linux 8 - Extras 2.4 kB/s | 1.5 kB 00:00
CentOS Linux 8 - Extras 8.7 kB/s | 8.6 kB 00:00
Extra Packages for Enterprise Linux Modular 8 - x86_64 8.8 kB/s | 9.3 kB 00:01
Extra Packages for Enterprise Linux 8 - x86_64 4.5 kB/s | 4.1 kB 00:00
Extra Packages for Enterprise Linux 8 - x86_64 529 kB/s | 8.6 MB 00:16
mongod를 실행하면 몽고디비를 사용할 수 있게 된다.
systemctl start mongod
[root@linuxhelp ~]# systemctl start mongod
3. 서버가 실행될 때 자동으로 mongod가 실행되게 설정한다.
systemctl enable mongod
[root@linuxhelp ~]# systemctl enable mongod
[참고] systemctl disable mongod : 부팅 시 자동실행으로 등록된 mongod 실행을 중지 시키는 명령
4. 현재 몽고디비 서비스 상태를 확인한다.
systemctl status mongod
[root@linuxhelp ~]# systemctl status mongod
● mongod.service - MongoDB Database Server
Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2020-12-16 11:09:47 IST; 27s ago
Docs: https://docs.mongodb.org/manual
Main PID: 94188 (mongod)
Memory: 94.0M
CGroup: /system.slice/mongod.service
└─94188 /usr/bin/mongod -f /etc/mongod.conf
5. mongo 쉘 프로그램을 실행한 후, 관리자 계정을 만들고 확인한다.
mongo <엔터>
[root@linuxhelp ~]# mongo
MongoDB shell version v4.2.11
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("04e9bf3f-3317-411c-bdf2-abf0c8fa4821") }
MongoDB server version: 4.2.11
Welcome to the MongoDB shell.
Server has startup warnings:
2020-12-16T11:09:46.450+0530 I STORAGE [initandlisten]
2020-12-16T11:09:46.450+0530 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2020-12-16T11:09:47.232+0530 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2020-12-16T11:09:47.232+0530 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2020-12-16T11:09:47.232+0530 I CONTROL [initandlisten]
To enable free monitoring, run the following command: db.enableFreeMonitoring()
관리자 계정(예: mdadmin)을 만든다.
use admin 명령 후 db.createUser( ... ) 실행
> use admin
switched to db admin
> db.createUser(
... {
... user:"mdadmin",
... pwd: "password",
... roles: [{role:"userAdminAnyDatabase", db: "admin"}]
... }
... )
Successfully added user: {
"user" : "mdadmin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
mddmin 관리자 계정이 생성되었는지 확인한다.
show users
> show users
{
"_id" : "admin.mdadmin",
"userId" : UUID("98b57c9b-cf80-4dca-9b05-c39085bf764c"),
"user" : "mdadmin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}
> quit()
6. 데이터베이스 접근 시 인증 모드 사용(계정 접속)을 설정한다.
[root@linuxhelp ~]# vim /lib/systemd/system/mongod.service
Find the following line:
Environment="OPTIONS=--f /etc/mongod.conf"
Add the --auth option as follows:
Environment="OPTIONS= --auth -f /etc/mongod.conf"
7. mongo.d 서비스를 리로드하고 mongod를 재시작한다.
[root@linuxhelp ~]# systemctl --system daemon-reload
[root@linuxhelp ~]# systemctl restart mongod
8. 사용자 계정으로 몽고 디비를 테스트한다.
[root@linuxhelp ~]# mongo
MongoDB shell version v4.2.11
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
MongoDB server version: 4.2.11
switched to db admin
> use admin
Now show users
> show users
An error message should display:
2020-12-16T11:16:42.222+0530 E QUERY [js] uncaught exception: Error: command usersInfo requires authentication :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.getUsers@src/mongo/shell/db.js:1661:15
shellHelper.show@src/mongo/shell/utils.js:883:9
shellHelper@src/mongo/shell/utils.js:790:15
@(shellhelp2):1:1
9. 다음 명령을 사용하여 이전에 생성된 자격 증명으로 인증한다.
db.auth('mdadmin', '비밀번호')
> db.auth('mdadmin','password')
1
Now show users to confirm
> show users
{
"_id" : "admin.mdadmin",
"userId" : UUID("98b57c9b-cf80-4dca-9b05-c39085bf764c"),
"user" : "mdadmin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}
[ FAQ ]
Q : MongoDB “Namespace”란 무엇인가요?
'DBMS, 데이터베이스' 카테고리의 다른 글
파이썬, PostgreSQL의 with 문을 사용한 경우 연결 객체 누수 (0) | 2023.04.22 |
---|---|
MySQL 쿼리 기능 요약 (0) | 2022.09.27 |
MongoDB 몽고디비 공식 매뉴얼 사이트 (0) | 2022.07.02 |
[MongoDB] 시작, 종료 (0) | 2022.06.26 |
MongoDB 안전 종료 (0) | 2022.06.25 |