MongoDB là một cơ sở dữ liệu NoSQL cung cấp hiệu suất cao, tính sẵn sàng cao và khả năng tự động mở rộng ở cấp độ doanh nghiệp. MongoDB là cơ sở dữ liệu NoSQL, vì vậy bạn không thể sử dụng SQL (Structured Query Language) để 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 hay Postgres. Dữ liệu được lưu trữ trong cấu trúc “tài liệu” theo định dạng JSON (được gọi là BSON trong MongoDB). MongoDB được giới thiệu vào năm 2009 và hiện đang được phát triển bởi MongoDB Inc.
MongoDB chỉ cung cấp các gói cho các phiên bản Ubuntu 64-bit LTS (hỗ trợ dài hạn). Ví dụ như 14.04 LTS (trusty), 16.04 LTS (xenial), 18.04 LTS (bionic), v.v.
Trong hướng dẫn này, tôi sẽ cài đặt MongoDB 4.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:
- Cài đặt MongoDB
- Cấu hình MongoDB
Cài đặt MongoDB trên Ubuntu 18.04 LTS
Bước 1 – Nhập khóa công khai
Các khóa GPG của nhà phân phối phần mềm được trình quản lý gói apt của Ubuntu yêu cầu để đảm bảo tính nhất quán và tính xác thực của gói. Thực thi lệnh này để nhập các khóa MongoDB vào máy chủ của bạn.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 68818C72E52529D4Bước 2 – Tạo tệp danh sách nguồn MongoDB
Tạo một tệp danh sách MongoDB trong /etc/apt/sources.list.d/ với lệnh này:
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.listBước 3 – Cập nhật kho lưu trữ
Cập nhật kho lưu trữ bằng lệnh apt:
sudo apt-get updateBước 4 – Cài đặt MongoDB
Bây giờ bạn có thể cài đặt MongoDB bằng cách gõ lệnh này:
sudo apt-get install -y mongodb-orgTrình cài đặt apt của MongoDB đã tự động tạo tệp mongod.service cho Systemd, do đó không cần tạo thủ công nữa.
Khởi động MongoDB và thêm nó như một dịch vụ để được khởi động khi máy tính khởi động:
sudo systemctl start mongod
sudo systemctl enable mongodBây giờ kiểm tra xem MongoDB đã được khởi động trên cổng 27017 chưa bằng lệnh netstat:
sudo netstat -plntu
Kiểm tra xem MongoDB có đang chạy không.
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 bạn 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 gõ:
mongoNếu bạn nhận được lỗi Failed global initialization: BadValue Invalid or no user locale set. Please ensure LANG and/or LC_* environment variables are set correctly, thử lệnh:
export LC_ALL=C
mongoBước 2 – Chuyển sang cơ sở dữ liệu admin
Khi bạn đã vào shell MongoDB, chuyển sang cơ sở dữ liệu có tên là admin:
use adminBước 3 – Tạo người dùng root
Tạo người dùng root với lệnh này:
db.createUser({user:"admin", pwd:"admin123", roles:[{role:"root", db:"admin"}]})Mô tả: Tạo người dùng admin với mật khẩu admin123 và có quyền root, cơ sở dữ liệu là admin.

Sau đó, gõ exit để thoát khỏi shell MongoDB:
exitĐọc thêm: Hướng Dẫn Cài Đặt Cassandra Trên Ubuntu 18.04
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 với trình soạn thảo của bạn:
sudo nano /lib/systemd/system/mongod.serviceTrên dòng ExecStart, thêm tùy chọn mới --auth:
ExecStart=/usr/bin/mongod --auth --config /etc/mongod.confLưu tệp dịch vụ và thoát nano.
Tải lại dịch vụ systemd:
sudo systemctl daemon-reloadBước 5 – Khởi động lại MongoDB và thử kết nối
Bây giờ khởi động lại MongoDB và kết nối với người dùng vừa tạo:
sudo service mongod restartvà kết nối với shell MongoDB bằng lệnh này:
mongo -u admin -p admin123 --authenticationDatabase adminBạn sẽ thấy kết quả như thế này:

Kiểm tra xác thực MongoDB.
Bật truy cập từ 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ỉ cho bạn cách cấu hình UFW để cho phép truy cập từ bên ngoài vào MongoDB.
Kiểm tra trạng thái UFW:
sudo ufw statusKhi kết quả là:
Status: inactiveBật UFW bằng lệnh này và mở cổng SSH trước nếu bạn đang kết nối qua SSH:
sudo ufw allow ssh
sudo ufw enableTrước khi tiếp tục 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 MongoDB 27017 từ các địa chỉ IP cần truy cập cơ sở dữ liệu. Mặc định, localhost luôn có thể truy cập, vì vậy không cần mở cổng MongoDB cho địa chỉ IP 127.0.0.1.
Cú pháp tường lửa UFW
sudo ufw allow from <địa chỉ đích> to <đích đến> port <số 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, sử dụng lệnh này:
sudo ufw allow from 192.168.1.10 to any port 27017Thay địa chỉ IP trong lệnh trên bằng địa chỉ 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 nội bộ và tất cả các hệ thống trong mạng đó đều có thể truy cập MongoDB, hãy dùng lệnh này:
sudo ufw allow 27017Kiểm tra trạng thái của tường lửa UFW bằng lệnh này:
sudo ufw statusMongoDB mặc định lắng nghe trên localhost, để làm cho cơ sở dữ liệu có thể truy cập từ bên ngoài, chúng ta phải cấu hình lại để nó lắng nghe trên địa chỉ IP của máy chủ.
Mở tệp mongod.conf trong trình soạn thảo nano:
sudo nano /etc/mongod.confvà thêm địa chỉ IP của máy chủ vào dòng bind_ip như sau:
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1,192.168.1.100Thay thế 192.168.1.100 bằng địa chỉ IP của máy chủ, sau đó khởi động lại MongoDB để áp dụng các thay đổi:
sudo service mongod restartBâ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 ảnh máy ảo sẵn sàng sử dụng ở định dạng OVA / OVF cho các thuê bao của Congdonglinux. Định dạng máy ảo tương thích với VMWare, Virtualbox và các công cụ khác có thể nhập định dạng OVA hoặc OVF. Bạn có thể tìm thấy liên kết tải xuống ở menu bên phải phía trên. Nhấp vào tên tệp để bắt đầu tải xuống.
Thông tin đăng nhập của máy ảo:
Đăng nhập SSH
- Tên người dùng: administrator
- Mật khẩu: Congdonglinux
Người dùng administrator có quyền sudo.
Hãy thay đổi mật khẩu sau lần khởi động đầu tiên.
Máy ảo được cấu hình cho IP tĩnh 192.168.1.100. Hướng dẫn 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 sẵn sàng cao và khả năng mở rộng tự động. Nó khác với các hệ quản trị cơ sở dữ liệu quan hệ như MySQL, PostgreSQL và SQLite vì 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 các “tài liệu” gọi là BSON (dạng nhị phân của JSON với thông tin bổ sung). MongoDB chỉ khả dụng cho các phiên bản Ubuntu 64-bit LTS (hỗ trợ dài hạn).










Add Comment