Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

วิธีการติดตั้งและกำหนดค่า MongoDB บน ​​CentOS 7


ในบทความนี้เราจะมาเรียนรู้วิธีติดตั้งและกำหนดค่า MongoDB บน ​​CentOS 7, MongoDB ซึ่งเป็นฐานข้อมูลโอเพ่นซอร์สและฟรี (เป็นฐานข้อมูล NoSQL) หมายความว่าเป็นฐานข้อมูลเชิงเอกสาร มันเก็บเอกสารที่ โครงสร้างคล้ายกับ JSON (ใน MongoDB เรียกว่า BSON) ที่มีความพร้อมใช้งานสูง ประสิทธิภาพ และการปรับขนาดอัตโนมัติ ต่างจาก RDBMS ตรงที่ไม่ต้องการสคีมาฐานข้อมูลที่กำหนดไว้ล่วงหน้าสำหรับการเพิ่มข้อมูลลงในตารางฐานข้อมูล เราสามารถแก้ไขสคีมาได้ตลอดเวลาโดยไม่รบกวนสคีมาที่มีอยู่

ข้อกำหนดเบื้องต้น

  • ติดตั้ง Centos 7 บนเครื่อง Linux
  • ผู้ใช้ที่มีสิทธิ์ผู้ใช้รูท

การเพิ่มที่เก็บ 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

เนื่องจากรายละเอียดที่เก็บได้รับการอัปเดตบนเครื่องท้องถิ่น ตอนนี้เราจะติดตั้ง MongoDB โดยใช้คำสั่ง yum

ด้านล่างนี้เป็นคำสั่งติดตั้ง 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]

ในการแก้ไขไม่มีกระบวนการ เราจำเป็นต้องแก้ไขไฟล์ “20-nproc.conf” ซึ่งอยู่ที่ “/etc/security/limits.d/”

# 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

ที่นี่เราจะสร้างผู้ใช้หนึ่งรายด้วยชื่อผู้ใช้ผู้ดูแลระบบและรหัสผ่าน “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 และเรายังได้เรียนรู้เกี่ยวกับวิธีการเปลี่ยนหรือเพิ่มจำนวน ของกระบวนการตั้งแต่ 4096 ถึง 32000 ในการกำหนดค่า MongoDB และวิธีสร้างผู้ใช้ที่เป็นผู้ดูแลระบบ