Database

Hướng dẫn cài đặt MongoDB trên 18.04

1490893172mongodb_logo.png

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 68818C72E52529D4

Bướ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.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:

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 gõ lệnh này:

sudo apt-get install -y mongodb-org

Trì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 mongod

Bâ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
mongodb

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õ:

mongo

Nế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
mongo

Bướ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 admin

Bướ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.

MongoDB

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.service

Trên dòng ExecStart, thêm tùy chọn mới --auth:

ExecStart=/usr/bin/mongod --auth --config /etc/mongod.conf

Lưu tệp dịch vụ và thoát nano.

Tải lại dịch vụ systemd:

sudo systemctl daemon-reload

Bướ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 restart

và kết nối với shell MongoDB bằng lệnh này:

mongo -u admin -p admin123 --authenticationDatabase admin

Bạn sẽ thấy kết quả như thế này:

MongoDB

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 status

Khi kết quả là:

Status: inactive

Bậ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 enable

Trướ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 27017

Thay đị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 27017

Kiểm tra trạng thái của tường lửa UFW bằng lệnh này:

sudo ufw status

MongoDB 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.conf

và 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.100

Thay 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 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 ả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

Click here to post a comment