Thứ năm, 08/10/2020 | 00:00 GMT+7

Cách cài đặt MongoDB từ Kho lưu trữ APT mặc định trên Ubuntu 20.04

MongoDB là database tài liệu NoSQL open-souce miễn phí được sử dụng phổ biến trong các ứng dụng web hiện đại.

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

Lưu ý : Khi viết bài này, hướng dẫn này cài đặt version 3.6 của MongoDB, đây là version có sẵn từ repository mặc định của Ubuntu. Tuy nhiên, ta thường khuyên bạn nên cài đặt version mới nhất của MongoDB - version 4.4 kể từ thời điểm viết bài này - để thay thế. Nếu bạn muốn cài đặt version mới nhất của MongoDB, ta khuyên bạn nên làm theo hướng dẫn này về Cách cài đặt MongoDB trên Ubuntu 20.04 từ nguồn .

Yêu cầu

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

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

Repository chính thức của Ubuntu bao gồm MongoDB, nghĩa là ta có thể cài đặt các gói cần thiết bằng cách sử dụng apt . Như đã đề cập trong phần giới thiệu, version có sẵn từ repository mặc định không phải là version mới nhất. Để cài đặt version Mongo mới nhất, hãy làm theo hướng dẫn này .

Trước tiên, hãy cập nhật danh sách gói để có version mới nhất của danh sách repository :

  • sudo apt update

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

  • sudo apt install mongodb

Lệnh này sẽ nhắc bạn xác nhận bạn muốn cài đặt gói mongodb và các gói phụ thuộc của nó. Để làm như vậy, hãy nhấn Y và sau đó ENTER .

Lệnh này cài đặt một số gói có chứa version MongoDB ổn định, cùng với các công cụ quản lý hữu ích cho server MongoDB. Server database được tự động khởi động sau khi cài đặt.

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

Bước 2 - Kiểm tra Dịch vụ và Database

Quá trình cài đặt bắt đầu MongoDB tự động, nhưng hãy xác minh dịch vụ đã được khởi động và database đang hoạt động.

Trước tiên, hãy kiểm tra trạng thái của dịch vụ:

  • sudo systemctl status mongodb

Bạn sẽ thấy kết quả này:

Output
● mongodb.service - An object/document-oriented database Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-10-08 14:23:22 UTC; 49s ago Docs: man:mongod(1) Main PID: 2790 (mongod) Tasks: 23 (limit: 2344) Memory: 42.2M CGroup: /system.slice/mongodb.service └─2790 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf

Theo kết quả này, server MongoDB đang hoạt động.

Ta có thể xác minh thêm điều này bằng cách kết nối với server database và chạy lệnh kiểm tra sau. Thao tác này sẽ xuất ra version database hiện tại, địa chỉ server và cổng cũng như kết quả của trạng thái lệnh :

  • mongo --eval 'db.runCommand({ connectionStatus: 1 })'
Output
MongoDB shell version v3.6.8 connecting to: mongodb://127.0.0.1:27017 Implicit session: session { "id" : UUID("e3c1f2a1-a426-4366-b5f8-c8b8e7813135") } MongoDB server version: 3.6.8 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }

Giá trị 1 cho trường ok trong phản hồi cho biết rằng server đang hoạt động bình thường.

Tiếp theo, ta sẽ xem xét cách quản lý version server .

Bước 3 - Quản lý Dịch vụ MongoDB

Quá trình cài đặt được nêu trong Bước 1 cấu hình MongoDB như một dịch vụ systemd , nghĩa là bạn có thể quản lý nó bằng các lệnh systemctl 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ụ, hãy nhập:

  • sudo systemctl status mongodb

Bạn có thể dừng server bất kỳ lúc nào bằng lệnh :

  • sudo systemctl stop mongodb

Để khởi động server khi nó bị dừng, hãy nhập:

  • sudo systemctl start mongodb

Bạn cũng có thể khởi động lại server bằng lệnh sau:

  • sudo systemctl restart mongodb

Theo mặc định, MongoDB được cấu hình để khởi động tự động với server . Nếu bạn muốn tắt tính năng khởi động tự động, hãy nhập:

  • sudo systemctl disable mongodb

Bạn có thể bật lại khởi động tự động bất kỳ lúc nào bằng lệnh sau:

  • sudo systemctl enable mongodb

Tiếp theo, hãy điều chỉnh cài đặt firewall cho cài đặt MongoDB của ta .

Bước 4 - Điều chỉnh firewall (Tùy chọn)

Giả sử bạn đã làm theo hướng dẫn cài đặt server ban đầu để bật firewall trên server của bạn , server MongoDB sẽ không thể truy cập được từ internet.

Nếu bạn định chỉ sử dụng server MongoDB local với các ứng dụng chạy trên cùng một server , thì đây là cài đặt được khuyến khích và bảo mật. Tuy nhiên, nếu bạn muốn có thể kết nối với server MongoDB của bạn từ internet, bạn phải cho phép các kết nối đến bằng cách thêm luật 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ể chạy sudo ufw allow 27017 . Tuy nhiên, cho phép truy cập internet vào server MongoDB trên cài đặt mặc định cho phép bất kỳ ai truy cập không hạn chế vào server database 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í tin cậy , chẳng hạn như một server khác lưu trữ ứng dụng. Để chỉ cho phép một server tin cậy khác truy cập vào cổng mặc định của MongoDB, bạn có thể chỉ định địa chỉ IP của server từ xa trong lệnh ufw . Bằng cách này, chỉ máy đó mới được phép kết nối một cách rõ ràng:

  • sudo ufw allow from trusted_server_ip/32 to any port 27017

Bạn có thể kiểm tra thay đổi trong cài đặt firewall với ufw :

  • sudo ufw status

Bạn sẽ thấy lưu lượng truy cập đến cổng 27017 được phép trong kết quả . Lưu ý 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 server MongoDB, địa chỉ IP của vị trí được phép sẽ được liệt kê thay vì Anywhere trong kết quả của lệnh này:

Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 27017 ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 27017 (v6) ALLOW Anywhere (v6)

Bạn có thể tìm thêm cài đặt firewall nâng cao để hạn chế quyền truy cập vào các dịch vụ trong UFW Essentials: Common Firewall Rules and Commands .

Ngay cả khi cổng đang mở, MongoDB sẽ vẫn chỉ lắng nghe trên địa chỉ local 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 của server của bạn vào file mongodb.conf .

Mở file cấu hình MongoDB trong editor bạn muốn . Lệnh ví dụ này sử dụng nano :

  • sudo nano /etc/mongodb.conf

Thêm địa chỉ IP của server MongoDB của bạn vào giá trị bindIP . Đảm bảo đặt dấu phẩy giữa địa chỉ IP hiện tại và địa chỉ bạn đã thêm:

/etc/mongodb.conf
... logappend=true  bind_ip = 127.0.0.1,your_server_ip #port = 27017  ... 

Lưu file và thoát khỏi editor . Nếu bạn đã sử dụng nano để chỉnh sửa file , hãy làm như vậy bằng cách nhấn CTRL + X , Y , sau đó ENTER .

Sau đó, khởi động lại dịch vụ MongoDB:

  • sudo systemctl restart mongodb

MongoDB hiện đang lắng nghe các kết nối từ xa, nhưng bất kỳ ai cũng có thể truy cập. Làm theo Cách bảo mật MongoDB trên Ubuntu 20.04 để thêm admin-user và khóa mọi thứ lại.

Kết luận

Bạn có thể tìm thấy các hướng dẫn chuyên sâu hơn về cách cấu hình và sử dụng MongoDB trong các bài viết cộng đồng DigitalOcean này . Tài liệu MongoDB chính thức cũng là một tài nguyên tuyệt vời về các khả năng mà MongoDB cung cấp.


Tags:

Các tin trước

Cách cài đặt mongodb trên ubuntu 18.04 2020-10-08
Cách bảo mật MongoDB trên Ubuntu 18.04 2020-10-08
Cách cấu hình quyền truy cập từ xa cho MongoDB trên Ubuntu 18.04 2020-10-08
Cách cài đặt MongoDB trên Ubuntu 18.04 2020-10-08
Làm thế nào để quản lý client OpenSSH trên Ubuntu 18.04 2020-09-30
Cách cài đặt và sử dụng ClickHouse trên Ubuntu 20.04 2020-09-22
Cách cài đặt và cấu hình Mahara trên Ubuntu 18.04 2020-09-21
Cách cài đặt Jitsi Meet trên Ubuntu 20.04 2020-09-18
Cách xử lý sandbox với Systemd trên Ubuntu 20.04 2020-09-16
Cách cài đặt và cấu hình Neo4j trên Ubuntu 20.04 2020-09-15