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.
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.
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ô 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.
Và bạn đã quay lại shell Linux.
Trên dòng 9 của 'ExecStart', hãy thêm tùy chọn mới '--auth'.
Lưu tệp dịch vụ và thoát khỏi nano.
Tải lại dịch vụ systemd:
và kết nối với shell MongoDB bằng lệnh này:
và bạn sẽ thấy đầu ra như thế này:
Kiểm tra trạng thái UFW
Khi kết quả là:
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:
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
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:
Kiểm tra trạng thái của tường lửa UFW bằng lệnh này:
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:
và thêm địa chỉ IP của máy chủ vào dòng bind_ip như thế này:
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.
Bây giờ bạn có thể truy cập máy chủ cơ sở dữ liệu MongoDB qua mạng.
Chi tiết đăng nhập của VM là:
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.
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
- Cài đặt MongoDB
- Cấu hình MongoDB
- 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
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
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"}]})
Bây giờ hãy nhập exit để thoát khỏi shell MongoDB.
Mã:
exit
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
Mã:
ExecStart=/usr/bin/mongod --auth --config /etc/mongod.conf
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
Mã:
mongo -u admin -p admin123 --authenticationDatabase admin
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
Mã:
Trạng thái: không hoạt động
Mã:
sudo ufw allow ssh
sudo ufw enable
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
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
Mã:
sudo ufw status
Mở tệp mongod.conf trong trình soạn thảo nano:
Mã:
sudo nano /etc/mongod.conf
Mã:
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1,192,168.1.100
Mã:
sudo service mongod restart
Ả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:administratorMậ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.