Hướng dẫn cài đặt MongoDB trên Ubuntu 20.04
Giới thiệu
MongoDB, hay được biết đến là Mongo, là một cơ sở dữ liệu mã nguồn mở được sử dụng trong nhiều ứng dụng web hiện đại. Nó được phân loại vào loại No-SQL database, bởi vì không dựa trên cấu trúc cơ sở dữ liệu quan hệ truyền thống.
Thay vào đó, nó sử dụng các document dạng JSON với cấu trúc động, có nghĩa, khác với cơ sở dữ liệu quan hệ, MongoDB không cần quy định cấu trúc dữ liệu trước khi thêm dữ liệu vào database. Bạn có thể thay đổi lại cấu trúc này bất cứ khi nào cần thiết mà không cần setup một database mới .
Trang chủ: https://www.mongodb.com/
GitHub : https://github.com/mongodb/mongo
Phiên bản mới nhất hiện tại: 4.4.1
Trong bài này, Bizfly Cloud sẽ cùng cài đặt MongoDB 4.4.1 lên Ubuntu 20.04
Yêu cầu
Ubuntu Server 20.04. Server, nên có thêm ít nhất 1 user thường và firewall được cấu hình với UFW (hoặc cũng có thể disable nó)
Bước 1 - Cài đặt MongoDB
Các repository chính thức của Ubuntu đã bao gồm phiên bản ổn định (stable) của MongoDB. Tuy nhiên, phiên bản này có thể bị cũ, cho nên ta có thể chủ động cài phiên bản stable mới nhất được phát hành.
Để có được phiên bản mới nhất của MongoDB, cần thêm repository riêng của MongoDB được chèn vào APT source của bạn. Sau đó bạn sẽ cài đặt package mongodb-org - package sẽ luôn trỏ đến phiên bản mới nhất của MongoDB
Để bắt đầu, ta cần import public GPG key cho phiên bản mới nhất của MongoDB. Có thể tìm thấy URL của các file key này (đuôi “.asc”) tại đây (https://www.mongodb.org/static/pgp/). Ví dụ nếu muốn cài đặt bản MongoDB 4.4, cần tìm file server-4.4.asc và copy URL của nó :
```
$ curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
```
Lệnh sẽ trả về output:
```
OK
```
Có thể kiểm tra lại xem key đã được thêm thành công chưa:
```
$ apt-key list
```
Output:
```
/etc/apt/trusted.gpg
--------------------
pub rsa4096 2019-05-28 [SC] [expires: 2024-05-26]
2069 1EEC 3521 6C63 CAF6 6CE1 6564 08E3 90CF B1F5
uid [ unknown] MongoDB 4.4 Release Signing Key <packaging@mongodb.com>
...
```
Tại thời điểm này, APT vẫn chưa biết tìm package mongo-org mới nhất của bạn ở đâu.
Có 2 nơi trong server mà APT sẽ tìm kiếm các package để download và cài đặt: file sources.list và thư mục sources.list.d. File sources.list là file chứa tất cả các nguồn dữ liệu APT, mỗi source sẽ đặt ở 1 dòng và dòng nào bên trên sẽ được ưu tiên. Thư mục sources.list.d sẽ cho phép bạn thêm các source tương tự như trong file source.list vào từng file riêng biệt
Chạy lệnh sau để thêm source vào file mongodb-org-4.4.list trong thư mục sources.list.d:
```
$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
```
Trong đó:
deb: có nghĩa source này sử dụng cho kiến trúc Debian thông thường
[ arch=amd64,arm64 ] : kiến trúc phần cứng muốn download
https://repo.mongodb.org/apt/ubuntu : URL nơi chứa dữ liệu APT của MongoDB repository
focal/mongodb-org/4.4 : Ubuntu repository có thể chứa nhiều bản release khác nhau. Trường hợp này chỉ định MongoDB phiên bản 4.4 của gói mongo-org cho bản release focal của Ubuntu (“Focal Fossa” - code name Ubuntu 20.04)
Sau khi chạy lệnh trên, cần cập nhật lạnh danh sách các gói để APT có thể tìm thấy gói mongo-org:
```
$ sudo apt update -y
```
Sau đó bạn đã có thể cài đặt MongoDB được rồi:
```
$ sudo apt install mongodb-org -y
```
Bước 2 - Khởi động dịch vụ MongoDB và test các database
Chạy lệnh systemctl sau để khởi động dịch vụ MongoDB:
```
$ sudo systemctl start mongod
```
Kiểm tra trạng thái dịch vụ:
```
$ sudo systemctl status mongod
```
Lệnh sẽ trả về Output sau:
```
● mongod.service - MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2020-11-03 00:55:50 +07; 6s ago
Docs: https://docs.mongodb.org/manual
Main PID: 13356 (mongod)
Memory: 62.0M
CGroup: /system.slice/mongod.service
└─13356 /usr/bin/mongod --config /etc/mongod.conf
Nov 03 00:55:50 mongo systemd[1]: Started MongoDB Database Server.
```
Sau khi chắc chắn dịch vụ đã hoạt động, ta cần cho phép MongoDB khởi chạy cùng hệ thống sau khi boot :
```
$ sudo systemctl enable mongod
```
Ta có thể test hoạt động của MongoDB qua lệnh sau:
```
$ mongo --eval 'db.runCommand({ connectionStatus: 1 })'
```
connectionStatus sẽ kiểm tra và trả về trạng thái của kết nối database. Giá trị 1 tại trường “ok” cho biết dịch vụ đang hoạt động tốt
```
MongoDB shell version v4.4.1
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("66d83e34-4717-4b5a-bd5e-134cd0833969") }
MongoDB server version: 4.4.1
{
"authInfo" : {
"authenticatedUsers" : [ ],
"authenticatedUserRoles" : [ ]
},
"ok" : 1
}
```
Bước 3 - Quản lý dịch vụ MongoDB
Kiểm tra trạng thái dịch vụ:
```
$ sudo systemctl status mongod
```
Tạm dừng dịch vụ:
```
$ sudo systemctl stop mongod
```
Khởi động dịch vụ (sau khi bị dừng):
```
$ sudo systemctl start mongod
```
Khởi động lại dịch vụ đang chạy:
```
$ sudo systemctl restart mongod
```
Không cho phép khởi động cùng hệ thống khi boot
```
$ sudo systemctl disable mongod
```
Cho phép khởi động cùng hệ thống khi boot:
```
$ sudo systemctl enable mongod
```
Kiểm tra phiên bản MongoDB đã cài đặt:
```
$ mongo --version
```
Output:
```
MongoDB shell version v4.4.1
Build Info: {
"version": "4.4.1",
"gitVersion": "ad91a93a5a31e175f5cbf8c69561e788bbc55ce1",
"openSSLVersion": "OpenSSL 1.1.1f 31 Mar 2020",
"modules": [],
"allocator": "tcmalloc",
"environment": {
"distmod": "ubuntu2004",
"distarch": "x86_64",
"target_arch": "x86_64"
}
}
```
Nguồn DigitalOcean
Bizfly Cloud là nhà cung cấp dịch vụ điện toán đám mây với chi phí thấp nhất, được vận hành bởi VCCorp.
Bizfly Cloud là một trong 4 doanh nghiệp nòng cốt trong "Chiến dịch thúc đẩy chuyển đổi số bằng công nghệ điện toán đám mây Việt Nam" của Bộ TT&TT; đáp ứng đầy đủ toàn bộ tiêu chí, chỉ tiêu kỹ thuật của nền tảng điện toán đám mây phục vụ Chính phủ điện tử/chính quyền điện tử.
Độc giả quan tâm đến các giải pháp của Bizfly Cloud có thể truy cập tại đây.