Cách cài đặt và cấu hình MongoDB trên Ubuntu 18.04 LTS

theanh

Administrator
Nhân viên
MongoDB là một cơ sở dữ liệu NoSQL cung cấp hiệu suất cao, tính khả dụng cao và khả năng tự động mở rộng cơ sở dữ liệu cấp doanh nghiệp. MongoDB là một cơ sở dữ liệu NoSQL, do đó bạn không thể sử dụng SQL (Ngôn ngữ truy vấn có cấu trúc) để chèn và truy xuất dữ liệu, và nó không lưu trữ dữ liệu trong các bảng như MySQL hoặc Postgres. Dữ liệu được lưu trữ trong cấu trúc "tài liệu" ở định dạng JSON (gọi là BSON trong MongoDB). MongoDB được giới thiệu vào năm 2009 và hiện đang được MongoDB Inc. phát triển.

MongoDB chỉ cung cấp các gói cho phiên bản Ubuntu 64-bit LTS (hỗ trợ dài hạn). Ví dụ 14.04 LTS (đáng tin cậy), 16.04 LTS (xenial), 18.04 LTS (bionic), v.v.

Trong hướng dẫn này, tôi sẽ cài đặt MongoDB4.0 trên Ubuntu 18.04 LTS.

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

  • Ubuntu Server 18.04 - 64 bit
  • Quyền root
Những gì chúng ta sẽ làm trong hướng dẫn này:
  1. Cài đặt MongoDB
  2. Cấu hình MongoDB
  3. Kết luận

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

Bước 1 - Nhập khóa công khai​

Khóa GPG của nhà phân phối phần mềm được yêu cầu bởi trình quản lý gói Ubuntu apt (Công cụ gói nâng cao) để đảm bảo tính nhất quán và tính xác thực của gói. Thực hiện lệnh này để nhập khóa MongoDB vào máy chủ của bạn.
Mã:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv68818C72E52529D4

Bước 2 - Tạo tệp danh sách nguồn MongoDB​

Tạo tệp danh sách MongoDB trong /etc/apt/sources.list.d/bằng lệnh này:
Mã:
sudo echo "deb http://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list

Bước 3 - Cập nhật kho lưu trữ​

cập nhật kho lưu trữ bằng lệnh apt:
Mã:
sudo apt-get update

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

Bây giờ bạn có thể cài đặt MongoDB bằng cách nhập lệnh này:
Mã:
sudo apt-get install -y mongodb-org
Trình cài đặt apt MongoDB đã tự động tạo tệp mongod.service cho Systemd, do đó không cần phải tạo thủ công nữa.

Khởi động MongoDB và thêm tệp này dưới dạng dịch vụ để khởi động khi khởi động:

sudo systemctl start mongod
sudo systemctl enable mongod

Bây giờ hãy kiểm tra xem MongoDB đã được khởi động trên cổng 27017 với lệnh netstat.
Mã:
sudonetstat -plntu

Cấu hình tên người dùng và mật khẩu MongoDB​

Khi các gói MongoDB được cài đặt, bạn có thể cấu hình tên người dùng và mật khẩu cho máy chủ cơ sở dữ liệu:

Bước 1 - Mở shell mongo​

Trước khi thiết lập tên người dùng và mật khẩu cho MongoDB, bạn cần mở shell MongoDB trên máy chủ của mình. Bạn có thể đăng nhập bằng cách nhập:
Mã:
mongo
Nếu bạn gặp lỗi Khởi tạo toàn cục không thành công: BadValue Không hợp lệ hoặc không có ngôn ngữ người dùng nào được đặt. Vui lòng đảm bảo các biến môi trường LANG và/hoặc LC_* được đặt đúng, hãy thử lệnh:
Mã:
export LC_ALL=C
mongo

Bước 2 - Chuyển sang cơ sở dữ liệu admin​

Khi bạn đã ở trong shell MongoDB, hãy chuyển sang cơ sở dữ liệu có tên admin:
Mã:
use admin

Bước 3 - Tạo người dùng root​

Tạo người dùng root bằng lệnh này:
Mã:
db.createUser({user:"admin", pwd:"admin123", roles:[{role:"root", db:"admin"}]})
Mô tả: Tạo người dùng admin bằng mật khẩu admin123 và có quyền/vai trò là root và cơ sở dữ liệu là admin.



Bây giờ hãy nhập exit để thoát khỏi shell MongoDB.
Mã:
exit
Và bạn đã quay lại shell Linux.

Bước 4 - Bật xác thực MongoDB​

Chỉnh sửa tệp dịch vụ mongodb '/lib/systemd/system/mongod.service'bằng trình soạn thảo của bạn.
Mã:
sudo nano /lib/systemd/system/mongod.service
Trên dòng 9 của 'ExecStart', hãy thêm tùy chọn mới '--auth'.
Mã:
ExecStart=/usr/bin/mongod --auth --config /etc/mongod.conf
Lưu tệp dịch vụ và thoát khỏi nano.

Tải lại dịch vụ systemd:
Mã:
sudo systemctl daemon-reload

Bước 5 - Khởi động lại MongoDB và thử kết nối​

Bây giờ hãy khởi động lại MongoDB và kết nối với người dùng đã tạo.
Mã:
sudo service mongod restart
và kết nối với shell MongoDB bằng lệnh này:
Mã:
mongo -u admin -p admin123 --authenticationDatabase admin
và bạn sẽ thấy đầu ra như thế này:


Bật quyền truy cập bên ngoài và cấu hình Tường lửa UFW​

UFW là tường lửa mặc định trong Ubuntu. Trong chương này, tôi sẽ chỉ cách cấu hình UFW để cho phép truy cập bên ngoài vào MongoDB.

Kiểm tra trạng thái UFW
Mã:
sudo ufw status
Khi kết quả là:
Mã:
Trạng thái: không hoạt động
Bật UFW bằng lệnh này và mở cổng SSH trước nếu được kết nối bằng SSH:
Mã:
sudo ufw allow ssh
sudo ufw enable
trước khi bạn tiến hành các bước tiếp theo.

Vì lý do bảo mật, bạn chỉ nên cho phép truy cập vào cổng MongoDB27017 từ các địa chỉ IP cần truy cập cơ sở dữ liệu. Theo mặc định, localhost luôn có thể truy cập vào cổng này, vì vậy không cần mở cổng MongoDB cho IP 127.0.0.1.

Cú pháp tường lửa UFW
Mã:
sudo ufw allow from  đến cổng

Mở cổng MongoDB trong UFW​

Để cho phép truy cập từ IP bên ngoài 192.168.1.10 vào MongoDB, hãy sử dụng lệnh này:
Mã:
sudo ufw allow from192.168.1.10 toany port27017
Thay thế địa chỉ IP trong lệnh trên bằng IP bên ngoài mà bạn muốn cho phép truy cập vào MongoDB.

Nếu bạn muốn mở cổng MongoDB cho bất kỳ IP nào, ví dụ: trong trường hợp bạn chạy nó trong một mạng cục bộ và tất cả các hệ thống trong mạng đó có thể truy cập MongoDB, thì hãy sử dụng lệnh này:
Mã:
sudo ufw allow 27017
Kiểm tra trạng thái của tường lửa UFW bằng lệnh này:
Mã:
sudo ufw status
MongoDB lắng nghe localhost theo mặc định, để làm cho cơ sở dữ liệu có thể truy cập được từ bên ngoài, chúng ta phải cấu hình lại để lắng nghe trên địa chỉ IP của máy chủ nữa.

Mở tệp mongod.conf trong trình soạn thảo nano:
Mã:
sudo nano /etc/mongod.conf
và thêm địa chỉ IP của máy chủ vào dòng bind_ip như thế này:
Mã:
# network interfaces
net:
 port: 27017
 bindIp: 127.0.0.1,192,168.1.100
Thay thế 192.168.1.100 bằng IP của máy chủ của bạn, sau đó khởi động lại MongoDB để áp dụng các thay đổi.
Mã:
sudo service mongod restart
Bây giờ bạn có thể truy cập máy chủ cơ sở dữ liệu MongoDB qua mạng.

Ảnh máy ảo​

Hướng dẫn này có sẵn dưới dạng máy ảo sẵn sàng sử dụng ở định dạng OVA / OVF dành cho người đăng ký Howtoforge. Định dạng VM tương thích với VMWare và Virtualbox và các công cụ khác có thể nhập định dạng ova orovf. Bạn có thể tìm thấy liên kết tải xuống trong menu bên phải ở trên cùng. Nhấp vào tên tệp để bắt đầu tải xuống.

Chi tiết đăng nhập của VM là:

Đăng nhập SSH​

Tên người dùng:administrator
Mật khẩu: howtoforge

Người dùng quản trị viên có quyền sudo.

Vui lòng thay đổi mật khẩu sau lần khởi động đầu tiên.

VM được định cấu hình cho IP tĩnh 192.168.1.100. Hướng dẫn về cách thay đổi IP tĩnh có thể được tìm thấy tại đây.

Kết luận​

MongoDB là một cơ sở dữ liệu NoSQL nổi tiếng cung cấp hiệu suất cao, tính khả dụng cao và khả năng mở rộng tự động. Nó khác với RDBMS như MySQL, PostgreSQL và SQLite vì nó không sử dụng SQL để thiết lập và truy xuất dữ liệu. MongoDB lưu trữ dữ liệu trong `documents` được gọi là BSON (biểu diễn nhị phân của JSON với thông tin bổ sung). MongoDB chỉ khả dụng cho bản phát hành Ubuntu hỗ trợ dài hạn 64-bit.
 
Back
Bên trên