Hướng dẫn cài đặt MongoBD trên Centos

MongoDB

MongoDB (được lấy tên từ “humongous”) là hệ thống CSDL mã nguồn mở dạng NoSQL. Nó được phân loại là cơ sở dữ liệu NoQuery vì nó không dựa trên cấu trúc cơ sở dữ liệu quan hệ dựa trên bảng truyền thống. Thay vào đó, nó sử dụng các tài liệu giống như JSON với các lược đồ động. Không giống như cơ sở dữ liệu quan hệ, MongoDB không yêu cầu lược đồ được xác định trước trước khi bạn thêm dữ liệu vào cơ sở dữ liệu. Bạn có thể thay đổi lược đồ bất cứ lúc nào và thường xuyên khi cần thiết mà không phải thiết lập cơ sở dữ liệu mới với lược đồ được cập nhật.

Trong MongoDB, các bản ghi là các tài liệu hoạt động rất giống các đối tượng JSON trong JavaScript. Việc các giá trị trong tài liệu có thể được tra cứu bằng từ khóa làm cho Mongo cực kỳ linh hoạt.

Bài viết này sẽ hướng dẫn bạn cách cài đặt MongoBD trên Centos.

Cài đặt MongoBD trên Centos

Yêu cầu:

Trước khi làm theo hướng dẫn này, hãy đảm bảo bạn có tài khoản sử dụng Sudo trên CentOS trước khi cài đặt MongoBD nhé.

Bước 1: Thêm kho ứng dụng MongoDB

Gói mongodb-org không tồn tại trong kho lưu trữ mặc định cho CentOS. Tuy nhiên, MongoDB duy trì một kho lưu trữ chuyên dụng. Vì vậy, hãy để thêm nó vào máy chủ của bạn.

Với trình soạn thảo vi, tạo tệp .repo cho yum, tiện ích quản lý gói cho CentOS bằng lệnh:

$ sudo vi /etc/yum.repos.d/mongodb-org.repo

Truy cập vào trang web của Mongodb qua link: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/ để lấy nội dung kho ứng dụng.

Tiếp đó, bạn thêm thông tin kho lưu trữ cho bạn phát hành mới nhất vào file dữ liệu bằng lệnh:

[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

Lưu và đóng tập tin.

Trước khi tiếp tục, chúng ta nên xác minh rằng kho MongoDB tồn tại trong tiện ích yum. Lệnh repolist hiển thị danh sách các kho lưu trữ khi được kích hoạt lệnh sau:

$ yum repolist
Output
. . .
repo id                          repo name
base/7/x86_64                    CentOS-7 - Base
extras/7/x86_64                  CentOS-7 - Extras
mongodb-org-3.2/7/x86_64         MongoDB Repository
updates/7/x86_64                 CentOS-7 - Updates
. . .

Khi Kho lưu trữ MongoDB đã sẵn sàng, chúng ta sẽ tiến hành cài đặt ở bước 2.

Bước 2: Cài đặt MongoDB


Tiếp theo, bắt đầu dịch vụ MongoDB với tiện ích systemctl:
$ sudo systemctl start mongod

Lệnh reload (tải lại) yêu cầu quá trình mongod đọc tệp cấu hình, /etc/mongod.conf và áp dụng bất kỳ thay đổi nào mà không yêu cầu khởi động lại.

$ sudo systemctl reload mongod​
Lệnh stop (dừng) sẽ ngừng tất cả các quá trình mongod đang chạy.
$ sudo systemctl stop mongod

Tiện ích systemctl không cung cấp kết quả sau khi thực hiện lệnh start, nhưng chúng ta có thể kiểm tra xem dịch vụ đã bắt đầu bằng cách xem phần cuối của tệp mongod.log bằng lệnh tail:

$ sudo tail /var/log/mongodb/mongod.log
Output
. . .
[initandlisten] waiting for connections on port 27017

Đầu ra của việc chờ kết nối xác nhận rằng MongoDB đã bắt đầu thành công và bạn có thể truy cập máy chủ cơ sở dữ liệu bằng MongoDB Shell:

$ mongo

Lưu ý:

Khi khởi chạy MongoDB Shell, bạn có thể đã thấy một cảnh báo như thế này:

** 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.

MongoDB là một ứng dụng luồng. Nó có thể khởi chạy các quy trình bổ sung để xử lý khối lượng công việc của nó. Cảnh báo nêu rõ rằng để MongoDB có hiệu quả nhất, số lượng quy trình được ủy quyền để quay vòng phải bằng một nửa số lượng tệp mà nó có thể mở tại bất kỳ thời điểm nào. Để giải quyết cảnh báo, hãy thay đổi giá trị rlimit mềm của mongod bằng cách chỉnh sửa tệp 20-nproc.conf:

sudo vi /etc/security/limits.d/20-nproc.conf

Sau đó gõ thêm lệnh sau vào cuối file:

/etc/security/limits.d/20-nproc.conf
. . .
mongod soft nproc 32000
$ mongo

Shell chọn cơ sở dữ liệu kiểm tra theo mặc định, đó là nơi bạn đã nhập dữ liệu của mình.

Truy vấn bộ sưu tập nhà hàng bằng phương thức find () để hiển thị danh sách tất cả các phần còn lại trong tập dữ liệu. Vì bộ sưu tập chứa hơn 25.000 mục nhập, hãy sử dụng phương thức limit () để giảm đầu ra của truy vấn xuống một số được chỉ định. Ngoài ra, phương thức pretty () làm cho thông tin dễ đọc hơn với các dòng mới và thụt lề.

> db.restaurants.find().limit( 1 ).pretty()
Output
{
    "_id" : ObjectId("57e0443b46af7966d1c8fa68"),
    "address" : {
        "building" : "1007",
        "coord" : [
            -73.856077,
            40.848447
        ],
        "street" : "Morris Park Ave",
        "zipcode" : "10462"
    },
    "borough" : "Bronx",
    "cuisine" : "Bakery",
    "grades" : [
        {
            "date" : ISODate("2014-03-03T00:00:00Z"),
            "grade" : "A",
            "score" : 2
        },
        {
            "date" : ISODate("2013-09-11T00:00:00Z"),
            "grade" : "A",
            "score" : 6
        },
        {
            "date" : ISODate("2013-01-24T00:00:00Z"),
            "grade" : "A",
            "score" : 10
        },
        {
            "date" : ISODate("2011-11-23T00:00:00Z"),
            "grade" : "A",
            "score" : 9
        },
        {
            "date" : ISODate("2011-03-10T00:00:00Z"),
            "grade" : "B",
            "score" : 14
        }
    ],
    "name" : "Morris Park Bake Shop",
    "restaurant_id" : "30075445"
}

Bạn có thể tiếp tục sử dụng tập dữ liệu mẫu để làm quen với MongoDB hoặc xóa nó bằng phương thức db.ranss.drop ():

> db.restaurants.drop()

Cuối cùng, thoát khỏi Shell bằng lệnh exit:

> exit
Bye

Kết luận

Trong hướng dẫn này, tôi đã đề cập đến việc thêm kho lưu trữ của bên thứ ba vào yum, cài đặt máy chủ cơ sở dữ liệu MongoDB, nhập dữ liệu mẫu và thực hiện một truy vấn đơn giản. Hướng dẫn này hầu như không làm trầy xước bề mặt các khả năng của MongoDB. Vì vậy, bạn có thể tạo cơ sở dữ liệu của riêng mình với một số bộ sưu tập, điền vào chúng nhiều tài liệu và bắt đầu xây dựng một ứng dụng mạnh mẽ.

Chúc bạn thành công!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *