Cài đặt MongoDB trên Ubuntu 18.04
MongoDB , còn gọi là Mongo là một database tài liệu NoSQL open-souce và 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, xem xét quản lý 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, là version có sẵn từ repository mặc định của Ubuntu. Tuy nhiê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, bạn có thể làm theo hướng dẫn này về Cách cài đặt MongoDB trên Ubuntu 18.04 từ source .
Yêu cầu
Để làm theo hướng dẫn này, bạn cần:
- Một server Ubuntu 18.04 được cài đặt theo hướng dẫn cài đặt server ban đầu này, bao gồm user không phải root có quyền sudo và firewall.
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 .
Đầu 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ờ 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 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 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 kiểm tra 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:
● mongodb.service - An object/document-oriented database
Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2018-05-26 07:48:04 UTC; 2min 17s ago
Docs: man:mongod(1)
Main PID: 2312 (mongod)
Tasks: 23 (limit: 1153)
CGroup: /system.slice/mongodb.service
└─2312 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf
Theo systemd
, 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à thực hiện lệnh kiểm tra
Thực hiện lệnh này:
- mongo --eval 'db.runCommand({ connectionStatus: 1 })'
Thao tác này sẽ xuất ra version database hiện tại, địa chỉ server và cổng, trạng thái lệnh:
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 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
MongoDB cài đặt như một dịch vụ systemd, nghĩa là bạn có thể quản lý nó bằng cách sử dụng các lệnh systemd
cùng với tất cả các dịch vụ sytem 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ằ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 một lệnh duy nhất:
- 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
Hoặc kích hoạt lại:
- sudo systemctl enable mongodb
Tiếp theo, hãy điều chỉnh cài đặt firewall cho cài đặt MongoDB .
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, 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 nghị 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 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
.
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. Để hoàn thành tác vụ này, bạn có thể cho phép truy cập trên cổng mặc định của MongoDB trong khi chỉ định địa chỉ IP của server khác sẽ được phép kết nối một cách rõ ràng:
- sudo ufw allow from your_other_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ả:
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 server MongoDB, địa chỉ IP của vị trí được phép sẽ được liệt kê thay vì Bất kỳ đâu (Anywhere) trong kết quả.
Bạn có thể tìm thấy các cài đặt firewall nâng cao hơn để hạn chế quyền truy cập vào các dịch vụ trong UFW Essentials: Common Firewall Rules and Commands .
Mặc dù cổng đang mở, MongoDB hiện chỉ nghe trên địa chỉ local 127.0.0.1
. Để cho phép kết nối từ xa, hãy thêm địa chỉ IP có thể định tuyến công khai của server vào file mongod.conf
.
Mở file 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 của server 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 file, khởi động lại MongoDB:
- sudo systemctl restart mongodb
MongoDB hiện đang lắng nghe các kết nối từ xa, bất kỳ ai cũng có thể truy cập. Làm theo Phần 2 của Cách cài đặt và bảo mật MongoDB trên Ubuntu 16.04 để thêm admin-user (người-dùng-quản-trị) 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. 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 MongoDB cung cấp.
Các tin trước
Cài đặt OpenVPN Server trên Ubuntu 18.04 2018-05-24 Cài đặt LEMP - Linux Nginx MySQL PHP trên Ubuntu 18 04 2018-05-23 Cài đặt và sử dụng PostgreSQL trên Ubuntu 18.04 2018-05-04 Cài đặt Linux Apache MySQL PHP (LAMP) trên Ubuntu 18 04 2018-04-27 Bảo mật cơ bản Ubuntu 18.04 2018-04-27 Cài đặt Apache Web Server trên Ubuntu 18.04 2018-04-27 Cài đặt xác thực đăng nhập SSH Keys, không cần password trên Ubuntu 18.04 2018-04-27 Cài đặt SSH Keys trên Ubuntu 16.04 2018-04-12 Cài đặt Node.js trên Ubuntu 16.04 2018-03-07 Cài đặt Anaconda Python trên Ubuntu 16 04 2017-12-27