Computer >> Máy Tính >  >> Lập trình >> MongoDB

Cách cài đặt và cấu hình MongoDB trên CentOS 7

Trong bài viết này, chúng ta sẽ tìm hiểu cách cài đặt và cấu hình MongoDB trên CentOS 7, MongoDB là một cơ sở dữ liệu mã nguồn mở và miễn phí (là một cơ sở dữ liệu NoSQL), có nghĩa là nó là một cơ sở dữ liệu hướng tài liệu, nó lưu trữ tài liệu. có cấu trúc tương tự như JSON (trong MongoDB, nó được gọi là BSON) với tính khả dụng, hiệu suất cao và tự động mở rộng. Không giống như RDBMS, nó không cần bất kỳ lược đồ cơ sở dữ liệu xác định trước nào để thêm dữ liệu vào các bảng cơ sở dữ liệu. Chúng tôi có thể thay đổi giản đồ bất kỳ lúc nào mà không làm ảnh hưởng đến lược đồ hiện có.

Điều kiện tiên quyết

  • Centos 7 đã được cài đặt trên Máy Linux.
  • Người dùng có đặc quyền của người dùng root.

Thêm Kho lưu trữ MongoDB

Theo mặc định, kho lưu trữ MongoDB không có trong kho lưu trữ CentOS 7, chúng tôi cần thêm kho lưu trữ MongoDB vào máy cục bộ.

# 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

Khi chúng tôi thêm kho lưu trữ MongoDB vào máy cục bộ, chúng tôi sẽ hệ thống để yum kiểm tra thông tin kho lưu trữ.

# 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

Cài đặt MongoDB

Vì thông tin chi tiết về kho lưu trữ được cập nhật trên máy cục bộ, bây giờ chúng tôi sẽ cài đặt MongoDB bằng lệnh yum.

Dưới đây là lệnh cài đặt 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 <packaging@mongodb.com>"
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!

Sau khi MongoDD được cài đặt, bây giờ chúng ta sẽ bắt đầu các dịch vụ MongoDB.

Dưới đây là lệnh để khởi động các dịch vụ MongoDB -

# systemctl start mongod

Chúng tôi chạy lệnh dưới đây để kiểm tra trạng thái của các dịch vụ 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.

Tải lại cấu hình MongoDB

# systemctl reload mongod

Dừng dịch vụ MongoDB

# systemctl stop mongod

Định cấu hình Số quy trình MongoDB

Theo mặc định, khi chúng tôi chạy Mongo, không có quy trình nào quá thấp đến 4096, vì vậy MongoDB sẽ hiển thị lỗi bên dưới -

# 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]

Để khắc phục sự cố không có quy trình, chúng tôi cần chỉnh sửa tệp “20-nproc.conf” tại “/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

Chúng tôi cần thay đổi 4096 thành 32000

* soft nproc 32000

Sau khi thay đổi giá trị thành 32000, chúng tôi cần khởi động lại các dịch vụ MongoDB, dưới đây là lệnh khởi động lại các dịch vụ MongoDB.

# systemctl restart mongod

Tạo người dùng quản trị viên MongoDB

Ở đây, chúng tôi sẽ tạo một người dùng với quản trị viên tên người dùng và với mật khẩu “password123”, sau khi tạo người dùng, chúng tôi sẽ kiểm tra danh sách người dùng trong cơ sở dữ liệu.

# 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"
      }
   ]
}
>

Trong bài này, chúng ta đã tìm hiểu - Cách thêm kho lưu trữ MongoDB vào máy cục bộ và cài đặt MongoDB và chúng ta cũng đã tìm hiểu về cách thay đổi hoặc tăng số không. quy trình từ 4096 đến 32000 trong cấu hình MongoDB và cách tạo người dùng quản trị viên.