Cách cài đặt MongoDB trên Ubuntu 18.04

MongoDB là một cơ sở dữ liệu tài liệu NoQuery miễn phí và mã nguồn mở được sử dụng phổ biến trong các ứng dụng web hiện đại.

Trong bài viết này, mình sẽ hướng dẫn các bạn cách cài đặt MongoDB trên Ubuntu 18.04, quản lý dịch vụ của nó và tùy chọn cho phép truy cập từ xa.

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

Để làm theo hướng dẫn này, bạn sẽ cần:

  • Một máy chủ Ubuntu 18.04 được thiết lập.
  • Quyền root

Bước 1 – Cài đặt MongoDB

Các kho lưu trữ gói chính thức của Ubuntu bao gồm một phiên bản cập nhật của MongoDB, có nghĩa là chúng ta có thể cài đặt các gói cần thiết bằng cách sử dụng apt.

Đầu tiên, cập nhật danh sách các gói để có phiên bản mới nhất của danh sách kho lưu trữ:

sudo apt update

Bây giờ hãy cài đặt gói MongoDB:

sudo apt install -y mongodb

Lệnh này cài đặt một số gói chứa phiên bản ổn định mới nhất của MongoDB, cùng với các công cụ quản lý hữu ích cho máy chủ MongoDB. Máy chủ cơ sở dữ liệu được tự động khởi động sau khi cài đặt.

Tiếp theo, hãy để xác minh rằng máy chủ đang chạy và hoạt động chính xác.

Bước 2 – Kiểm tra Service và Database

Quá trình cài đặt đã tự động khởi động MongoDB, nhưng hãy để xác minh rằng dịch vụ được khởi động và cơ sở dữ liệu đang hoạt động.

Đầu tiên, hãy kiểm tra trạng thái service:

sudo systemctl status mongodb

Bạn sẽ thấy đầu ra này:

root@vultr:/# sudo systemctl status mongodb
● mongodb.service - An object/document-oriented database
   Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2020-03-18 16:46:08 UTC; 4min 47s ago
     Docs: man:mongod(1)
 Main PID: 7899 (mongod)
    Tasks: 24 (limit: 2318)
   CGroup: /system.slice/mongodb.service
           └─7899 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf

Mar 18 16:46:08 vultr.guest systemd[1]: Started An object/document-oriented database.

Chúng ta có thể xác minh điều này hơn nữa bằng cách thực sự kết nối với máy chủ cơ sở dữ liệu và thực hiện lệnh chẩn đoán.

Thực hiện lệnh này:

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

Điều này sẽ xuất phiên bản cơ sở dữ liệu hiện tại, địa chỉ máy chủ và cổng và đầu ra của lệnh trạng thái:

root@vultr:/# mongo --eval 'db.runCommand({ connectionStatus: 1 })'
MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
{
        "authInfo" : {
                "authenticatedUsers" : [ ],
                "authenticatedUserRoles" : [ ]
        },
        "ok" : 1
}

Giá trị 1 cho trường ok trong phản hồi cho biết rằng máy chủ đang hoạt động đúng.

Tiếp theo, chúng ta sẽ xem xét làm thế nào để quản lý server.

Bước 3 – Quản lý MongoDB Service

MongoDB cài đặt như một dịch vụ systemd, có nghĩa là bạn có thể quản lý nó bằng các lệnh systemd tiêu chuẩn cùng với tất cả các dịch vụ hệ thống khác trong Ubuntu.

Để xác minh trạng thái của dịch vụ, nhập:

sudo systemctl status mongodb

Bạn có thể dừng máy chủ bất cứ lúc nào bằng cách gõ:

sudo systemctl stop mongodb

Để khởi động máy chủ khi dừng, gõ:

sudo systemctl start mongodb

Bạn cũng có thể khởi động lại máy chủ bằng một lệnh duy nhất:

sudo systemctl restart mongodb

Theo mặc định, MongoDB được cấu hình để bắt đầu tự động với máy chủ. Nếu bạn muốn tắt tự động khởi động, gõ:

sudo systemctl disable mongodb

Nó rất dễ dàng để kích hoạt lại. Để làm điều này, sử dụng:

sudo systemctl enable mongodb

Tiếp theo, hãy để điều chỉnh các cài đặt tường lửa cho cài đặt MongoDB của chúng tôi.

Bước 4 – Điều chỉnh Tường lửa (Tùy chọn)

Giả sử bạn đã làm theo các hướng dẫn hướng dẫn thiết lập máy chủ ban đầu để bật tường lửa trên máy chủ của mình, máy chủ MongoDB sẽ không thể truy cập được từ internet.

Nếu bạn định chỉ sử dụng máy chủ MongoDB cục bộ với các ứng dụng chạy trên cùng một máy chủ thì đây là cài đặt được khuyến nghị và bảo mật. Tuy nhiên, nếu bạn muốn có thể kết nối với máy chủ MongoDB của mình từ internet, bạn phải cho phép các kết nối đến trong ufw.

Để cho phép truy cập vào MongoDB trên cổng mặc định 27017 từ mọi nơi, bạn có thể sử dụng sudo ufw allow 27017. Tuy nhiên, việc cho phép truy cập internet vào máy chủ MongoDB trên cài đặt mặc định cho phép mọi người truy cập không hạn chế vào máy chủ cơ sở dữ liệu và dữ liệu của nó.

Trong hầu hết các trường hợp, MongoDB chỉ nên được truy cập từ một số vị trí đáng tin cậy nhất định, chẳng hạn như một máy chủ khác lưu trữ một ứng dụng. Để thực hiện tác vụ này, bạn có thể cho phép truy cập trên cổng mặc định MongoDB, trong khi chỉ định địa chỉ IP của một máy chủ khác sẽ được phép kết nối rõ ràng:

sudo ufw allow from your_other_server_ip/32 to any port 27017  

Bạn có thể xác minh thay đổi trong cài đặt tường lửa bằng ufw:

sudo ufw status

ạn sẽ thấy lưu lượng truy cập đến cổng 27017 được cho phép:

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
27017                      ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
27017 (v6)                 ALLOW       Anywhere (v6)

Nếu bạn đã quyết định chỉ cho phép một địa chỉ IP nhất định kết nối với máy chủ MongoDB, địa chỉ IP của vị trí được phép sẽ được liệt kê thay vì bất kỳ nơi nào khác.

Bạn có thể tìm thấy các cài đặt tường lửa nâng cao hơn để hạn chế quyền truy cập vào các dịch vụ trong UFW Essentials: Các quy tắc và lệnh tường lửa phổ biến.

Mặc dù cổng đã mở, MongoDB hiện chỉ nghe trên địa chỉ cục bộ 127.0.0.1. Để cho phép các kết nối từ xa, hãy thêm địa chỉ IP có thể định tuyến công khai vào máy chủ của bạn vào tệp mongod.conf.

Mở tệp cấu hình MongoDB trong trình chỉnh sửa của bạn:

sudo nano /etc/mongodb.conf

Thêm địa chỉ IP máy chủ của bạn vào giá trị bindIP:

...
logappend=true

bind_ip = 127.0.0.1,your_server_ip
#port = 27017

...

Đảm bảo đặt dấu phẩy giữa địa chỉ IP hiện có và địa chỉ bạn đã thêm.

Lưu tệp, thoát trình chỉnh sửa và khởi động lại MongoDB:

sudo systemctl restart mongodb

OK. Vậy là xong xuôi các bước cài đặt và config MongoDB trên Ubuntu rồi đấy, giờ thì tiếp những phần dang giở của bạn đi nào.

Có thể bạn muốn xem:

Oh My Zsh: Nâng cao trải nghiệm terminal với giao diện đẹp và các plugin tăng hiệu suất! Git cherry-pick là gì? Cách sử dụng và ví dụ Git Rebase: Gộp nhiều commit thành một để tối ưu hóa lịch sử commit 11 tính năng JavaScript mới tuyệt vời trong ES13 (ES2022) CSS diệu kỳ: Các thuộc tính CSS mà bạn có thể chưa biết Auto deploy projects với GitHub Actions – sử dụng ssh-action WordPress Gutenberg Block Server Side Render Add, Upload image trong Gutenberg Block Development Tạo Block Controls – Block Toolbar và Settings Sidebar trong WordPress Gutenberg Làm quen với các components thường dùng khi tạo Gutenberg Block

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.