Cài đặt MongoDB trên Ubuntu 22.04 LTS

 

Giới thiệu

MongoDB còn được gọi là Mongo, là một cơ sở dữ liệu tài liệu mã nguồn mở được sử dụng rộng rãi. MongoDB là cơ sở dữ liệu NoSQL. MongoDB không giống như các cơ sở dữ liệu quan hệ dựa trên SQL truyền thống như MySQL, Oracle,... Nó lưu trữ dữ liệu ở định dạng giống JSON (BSON) theo mặc định (BSON là Binary JSON). Bằng cách sử dụng BSON thay vì JSON thuần túy, kích thước của tài liệu có thể được giảm đáng kể. Bởi vì chúng lưu trữ dữ liệu trong các cặp khóa-giá trị, các DB này rất hiệu quả cho các mục đích đọc hoặc truy vấn.



Cập nhật hệ thống

Để đảm bảo rằng tất cả các phụ thuộc của MongoDB đều được cập nhật, hãy thực thi lệnh bên dưới:

bash (root)
apt update -y
apt dist-upgrade -y

Trong quá trình cập nhật hệ thống chúng ta chờ từ 5 phút đến 15 phút.

Cài đặt các gói bắt buộc

Chúng ta cần cài đặt gnupg để nhập khoá có thể cài đặt bằng lệnh sau.

bash (root)
apt install gnupg

Cài đặt Libssl1

Sau khi cài đặt gnupg cần cài đặt libssl1 để cài đặt MongoDb trên Ubuntu 22.04.

Để cài đặt libssl1, hãy làm theo các bước dưới đây.

bash (root)
echo "deb http://security.ubuntu.com/ubuntu impish-security main" | tee /etc/apt/sources.list.d/impish-security.list
apt update
apt install libssl1.1

Bây giờ chúng ta đã cài đặt tất cả các gói cấn thiết của MongoDB và có thể tiến hành cài đặt MongoDB.

Cài đặt MongoDB

Chúng ta sẽ cài đặt MongoDB Community Edition với LTS bằng apt .

Tiến hành nhập khóa công khai bằng lệnh sau.

bash (root)
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -

Chúng ta sẽ sử dụng kho Focal Fosa vì MongoDB Community Edition không có kho lưu trữ riêng cho Jammy Jellyfish (Ubuntu 22.04).

bash (root)
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list

Chúng ta tiến hành cập nhật các gói và cài đặt MongoDB.

bash (root)
apt update
apt install -y mongodb-org

Khởi động máy chủ MongoDB.

bash (root)
systemctl start mongod

Tiến hành kiểm tra trạng thái MongoDB bằng lệnh sau.

bash (root)
systemctl status mongod

Kết quả như sau:

Kết quả
● mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
     Active: active (running) since Thu 2022-07-07 09:08:39 +07; 33s ago
       Docs: https://docs.mongodb.org/manual
   Main PID: 7321 (mongod)
     Memory: 62.3M
        CPU: 1.042s
     CGroup: /system.slice/mongod.service
             └─7321 /usr/bin/mongod --config /etc/mongod.conf

Jul 07 09:08:39 testwinpe systemd[1]: Started MongoDB Database Server.

Thực thi lệnh sau để cho phép MongoDB khởi động khi khởi động hệ thống.

bash (root)
systemctl enable mongod

Kiểm tra mongoDB

Để kiểm tra cài đặt MongoDB, chúng ta sẽ đăng nhập vào MongoDB shell và thực hiện một số truy vấn cơ bản.

Để đăng nhập vào MongoDB shell, hãy chạy lệnh sau bên dưới.

bash (root)
mongo

MongoDB shell sẽ được thực thi.

Kết quả
MongoDB shell version v5.0.9
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("5440fe1d-ac68-4a3d-9130-0a259c51dc57") }
MongoDB server version: 5.0.9
================
Warning: the "mongo" shell has been superseded by "mongosh",
which delivers improved usability and compatibility.The "mongo" shell has been deprecated and will be removed in
an upcoming release.
For installation instructions, see
https://docs.mongodb.com/mongodb-shell/install/
================
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
    https://docs.mongodb.com/
Questions? Try the MongoDB Developer Community Forums
    https://community.mongodb.com
---
The server generated these startup warnings when booting:
        2022-07-07T09:08:40.048+07:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem
        2022-07-07T09:08:40.759+07:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
---
---
        Enable MongoDB's free cloud-based monitoring service, which will then receive and display
        metrics about your deployment (disk utilization, CPU, operation statistics, etc).

        The monitoring data will be available on a MongoDB website with a unique URL accessible to you
        and anyone you share the URL with. MongoDB may use this information to make product
        improvements and to suggest MongoDB products and deployment options to you.

        To enable free monitoring, run the following command: db.enableFreeMonitoring()
        To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---
>

Để tắt trạng thái cảnh báo của MongoDB "The server generated these startup warnings when booting:" chúng ta cần tiến hành thao tác.

Bật Authentication cho Mongodb

Để tạo user quản trị, trước tiên ta cần kết nối đến Mongo shell

bash (root)
mongo

Sau khi đã truy cập MongoDB Shell thực thi lệnh sau:

bash (root)
use admin
db.createUser(
    {
        user: "123host",
        pwd: "123hostpassword",
        roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
    }
)

Kết quả trả về:

Kết quả
Successfully added user: {
    "user" : "123host",
    "roles" : [
        {
            "role" : "userAdminAnyDatabase",
            "db" : "admin"
        }
    ]
}

Đến đây chúng ta đã kết thúc quá trình tạo tài khoản quản trị cho Mongodb, chúng ta có thể thoát khỏi Mongodb shell bằng cách dùng lệnh exit hoặc CTRL+C

Để có thể bật Authentication chúng ta cần sửa file mongod.conf

bash (root)
vi /etc/mongod.conf

Chuyển đến dòng #security, bỏ comment # và thêm authorization: "enabled"

/etc/mongod.conf
security:
  authorization: "enabled"

Khởi động lại mongod

bash (root)
systemctl restart mongod

Tiến hành truy cập lại mongoDB shell chúng ta sẽ không còn nhận được cảnh báo như trên:

bash (root)
mongo

Kết quả như sau:

Kết quả
MongoDB shell version v5.0.9
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("cbc36865-5378-42cf-9ee0-1d8499dd96fc") }
MongoDB server version: 5.0.9
================
Warning: the "mongo" shell has been superseded by "mongosh",
which delivers improved usability and compatibility.The "mongo" shell has been deprecated and will be removed in
an upcoming release.
For installation instructions, see
https://docs.mongodb.com/mongodb-shell/install/
================
>

Theo như thông báo thì mongo shell sẽ bị chuyển sang mongosh sau vài phiên bản nữa, như vậy chúng ta sẽ chuyển sang sử dụng mongosh như sau:

bash (root)
mongosh

Kết quả như sau:

Kết quả
Current Mongosh Log ID: 62c6495e39dd8a5967db353f
Connecting to:      mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.5.0
Using MongoDB:      5.0.9
Using Mongosh:      1.5.0

For mongosh info see: https://docs.mongodb.com/mongodb-shell/

test>

Chúng ta có thể xác minh thêm rằng cơ sở dữ liệu đang hoạt động bằng cách kết nối với máy chủ mongodb và thực hiện lệnh sau:

bash (root)
mongo --eval 'db.runCommand({ connectionStatus: 1 })'

Kết quả trả về như bên dưới:

Kết quả
MongoDB shell version v5.0.9
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("ce240f00-7e93-4dfe-b252-64b145c37e8a") }
MongoDB server version: 5.0.9
{
    "authInfo" : {
        "authenticatedUsers" : [ ],
        "authenticatedUserRoles" : [ ]
    },
    "ok" : 1
}

Đăng nhận xét

0 Nhận xét

Liên hệ