Computer >> 컴퓨터 >  >> 프로그램 작성 >> MongoDB

CentOS 7에서 MongoDB를 설치하고 구성하는 방법

<시간/>

이 기사에서는 CentOS 7에 MongoDB를 설치하고 구성하는 방법을 배울 것입니다. MongoDB는 오픈 소스 및 무료 데이터베이스(NoSQL 데이터베이스)이며 문서 지향 데이터베이스이며 문서를 저장합니다. 구조적으로 JSON(MongoDB에서는 BSON이라고 함)과 유사하며 고가용성, 성능 및 자동 확장 기능이 있습니다. RDBMS와 달리 데이터베이스 테이블에 데이터를 추가하기 위해 사전 정의된 데이터베이스 스키마가 필요하지 않습니다. 기존 스키마를 방해하지 않고 언제든지 스키마를 변경할 수 있습니다.

전제조건

  • Linux 시스템에 설치된 Centos 7.
  • 루트 사용자 권한을 가진 사용자입니다.

MongoDB 저장소 추가

기본적으로 MongoDB 리포지토리는 CentOS 7 리포지토리에 없으므로 로컬 시스템에 MongoDB 리포지토리를 추가해야 했습니다.

# vi /etc/yum.repos.d/mongodb-org.repo
Output:
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc

MongoDB 리포지토리를 로컬 시스템에 추가하면 yum이 리포지토리 정보를 확인하도록 시스템을 구성합니다.

# yum update
Output:
Loaded plugins: fastestmirror
base                                           | 3.6 kB 00:00
extras                                         | 3.4 kB 00:00
mongodb-org-3.2                               | 2.5 kB 00:00
updates                                        | 3.4 kB 00:00
mongodb-org-3.2/7/primary_db | 54 kB 00:01
Determining fastest mirrors
* base: mirror.dhakacom.com
* extras: mirror.dhakacom.com
* updates: mirror.dhakacom.com
No packages marked for update

MongoDB 설치

저장소 세부 정보가 로컬 시스템에서 업데이트되면 이제 yum 명령을 사용하여 MongoDB를 설치합니다.

다음은 MongoDB를 설치하는 명령어입니다.

# yum install mongodb-org
Output:
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.dhakacom.com
* extras: mirror.dhakacom.com
* updates: mirror.dhakacom.com
Resolving Dependencies
--> Running transaction check
---> Package mongodb-org.x86_64 0:3.2.11-1.el7 will be installed
…
…
…
---> Package mongodb-org-mongos.x86_64 0:3.2.11-1.el7 will be installed
---> Package mongodb-org-server.x86_64 0:3.2.11-1.el7 will be installed
---> Package mongodb-org-shell.x86_64 0:3.2.11-1.el7 will be installed
---> Package mongodb-org-tools.x86_64 0:3.2.11-1.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package                Arch       Version       Repository       Size
================================================================================
Installing:
mongodb-org            x86_64    3.2.11-1.el7   mongodb-org-3.2 5.8 k
Installing for dependencies:
mongodb-org-mongos    x86_64     3.2.11-1.el7   mongodb-org-3.2 5.6 M
mongodb-org-server    x86_64     3.2.11-1.el7   mongodb-org-3.2 12 M
mongodb-org-shell     x86_64     3.2.11-1.el7   mongodb-org-3.2 6.7 M
mongodb-org-tools     x86_64     3.2.11-1.el7   mongodb-org-3.2 41 M
Transaction Summary
================================================================================
Install 1 Package (+4 Dependent packages)
Total download size: 66 M
Installed size: 201 M
Is this ok [y/d/N]:y
Downloading packages:
warning: /var/cache/yum/x86_64/7/mongodb-org-3.2/packages/mongodb-org-3.2.11-1.el7.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID ea312927: NOKEY
Public key for mongodb-org-3.2.11-1.el7.x86_64.rpm is not installed
(1/5): mongodb-org-3.2.11-1.el7.x86_64.rpm | 5.8 kB 00:01
(2/5): mongodb-org-mongos-3.2.11-1.el7.x86_64.rpm | 5.6 MB 00:01
(3/5): mongodb-org-shell-3.2.11-1.el7.x86_64.rpm | 6.7 MB 00:00
(4/5): mongodb-org-server-3.2.11-1.el7.x86_64.rpm | 12 MB 00:06
(5/5): mongodb-org-tools-3.2.11-1.el7.x86_64.rpm | 41 MB 00:06
--------------------------------------------------------------------------------
Total 7.3 MB/s | 66 MB 00:08
Retrieving key from https://www.mongodb.org/static/pgp/server-3.2.asc
Importing GPG key 0xEA312927:
Userid : "MongoDB 3.2 Release Signing Key <[email protected]>"
Fingerprint: 42f3 e95a 2c4f 0827 9c49 60ad d68f a50f ea31 2927
From : https://www.mongodb.org/static/pgp/server-3.2.asc
Is this ok [y/N]:y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
   Installing : mongodb-org-server-3.2.11-1.el7.x86_64 1/5
   Installing : mongodb-org-mongos-3.2.11-1.el7.x86_64 2/5
   Installing : mongodb-org-tools-3.2.11-1.el7.x86_64 3/5
   Installing : mongodb-org-shell-3.2.11-1.el7.x86_64 4/5
   Installing : mongodb-org-3.2.11-1.el7.x86_64 5/5
   Verifying : mongodb-org-shell-3.2.11-1.el7.x86_64 1/5
   Verifying : mongodb-org-tools-3.2.11-1.el7.x86_64 2/5
   Verifying : mongodb-org-mongos-3.2.11-1.el7.x86_64 3/5
   Verifying : mongodb-org-server-3.2.11-1.el7.x86_64 4/5
   Verifying : mongodb-org-3.2.11-1.el7.x86_64 5/5
Installed:
   mongodb-org.x86_64 0:3.2.11-1.el7
Dependency Installed:
   mongodb-org-mongos.x86_64 0:3.2.11-1.el7
   mongodb-org-server.x86_64 0:3.2.11-1.el7
   mongodb-org-shell.x86_64 0:3.2.11-1.el7
   mongodb-org-tools.x86_64 0:3.2.11-1.el7

Complete!

MongoDD가 설치되면 이제 MongoDB 서비스를 시작합니다.

다음은 MongoDB 서비스를 시작하는 명령입니다 –

# systemctl start mongod

아래 명령어를 실행하여 MongoDB 서비스의 상태를 확인합니다.

# systemctl status mongod

Output:
mongod.service - SYSV: Mongo is a scalable, document-oriented database.
Loaded: loaded (/etc/rc.d/init.d/mongod)
Active: active (running) since Fri 2016-11-25 14:09:25 IST; 12s ago
Docs: man:systemd-sysv-generator(8)
Process: 9901 ExecStart=/etc/rc.d/init.d/mongod start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/mongod.service
└─9912 /usr/bin/mongod -f /etc/mongod.conf
Nov 25 14:09:25 localhost.localdomain systemd[1]: Starting SYSV: Mongo is a s...
Nov 25 14:09:25 localhost.localdomain runuser[9908]: pam_unix(runuser:session...
Nov 25 14:09:25 localhost.localdomain runuser[9908]: pam_unix(runuser:session...
Nov 25 14:09:25 localhost.localdomain mongod[9901]: Starting mongod: [ OK ]
Nov 25 14:09:25 localhost.localdomain systemd[1]: Started SYSV: Mongo is a sc...Hint: Some lines were ellipsized, use -l to show in full.

MongoDB 구성 새로고침

# systemctl reload mongod

MongoDB 서비스 중지

# systemctl stop mongod

MongoDB 프로세스 수 구성

기본적으로 Mongo를 실행할 때 프로세스 수는 4096으로 너무 낮으므로 MongoDB는 아래 오류를 표시합니다 –

# mongo
Output:
MongoDB shell version: 3.2.11
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
https://docs.mongodb.org/
Questions? Try the support group
https://groups.google.com/group/mongodb-user
Server has startup warnings:
2016-11-25T14:09:25.553+0530 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 4096 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files.
2016-11-25T14:09:25.553+0530 I CONTROL [initandlisten]

프로세스 번호를 수정하기 위해 "/etc/security/limits.d/"에 있는 "20-nproc.conf" 파일을 편집해야 했습니다.

# vi /etc/security/limits.d/20-nproc.conf
Output:
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
* soft nproc 4096
root soft nproc unlimited

4096을 32000으로 변경해야 했습니다.

* soft nproc 32000

값을 32000으로 변경하면 MongoDB 서비스를 다시 시작하는 데 필요합니다. 아래는 MongoDB 서비스를 다시 시작하는 명령입니다.

# systemctl restart mongod

MongoDB 관리자 사용자 생성

여기에서 사용자 이름이 admin이고 비밀번호가 "password123"인 사용자를 한 명 생성한 후 데이터베이스에서 사용자 목록을 확인합니다.

# mongo
Output:
MongoDB shell version: 3.2.11
connecting to: test
> use admin
switched to db admin
> db.createUser(
...    {
...       user: "admin",
...       pwd: "password123",
...       roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
...    }
... )
Successfully added user: {
   "user" : "admin",
   "roles" : [
      {
         "role" : "userAdminAnyDatabase",
         "db" : "admin"
      }
   ]
}
> show users;
{
   "_id" : "admin.admin",
   "user" : "admin",
   "db" : "admin",
   "roles" : [
      {
         "role" : "userAdminAnyDatabase",
         "db" : "admin"
      }
   ]
}
>
<블록 인용>

이 기사에서는 MongoDB 저장소를 로컬 머신에 추가하고 MongoDB를 설치하는 방법과 No.를 변경하거나 늘리는 방법에 대해서도 배웠습니다. MongoDB 구성에서 4096에서 32000까지의 프로세스와 관리자 사용자를 만드는 방법.