- Hướng dẫn cài đặt MongoDB Enterprise Edition trên VPS ubuntu 16.04 LTS, 18.04 LTS, 20.04 LTS từ A đến Z
1. Cài đặt MongoDB
Chạy các lệnh sau để nhập public GPG Key của MongoDB:
sudo apt-get install gnupg wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
Tạo một file /etc/apt/sources.list.d/mongodb-enterprise.list cho MongoDB:
Ubuntu 16.04:
echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.com/apt/ubuntu xenial/mongodb-enterprise/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-enterprise.list
Ubuntu 18.04:
echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.com/apt/ubuntu bionic/mongodb-enterprise/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-enterprise.list
Ubuntu 20.04:
echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.com/apt/ubuntu focal/mongodb-enterprise/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-enterprise.list
Load lại local package database mới nhất:
sudo apt-get update
Cài đặt MongoDB Enterprise packages:
sudo apt-get install -y mongodb-enterprise
Vậy là đã xong. Bây giờ các bạn có thể chạy và kiểm tra lại MongoDB Enterprise Edition trên VPS của mình với các lệnh sau:
Mặc định, một MongoDB instance sẽ được lưu tại:
- data files trong thư mục
/var/lib/mongodb
- log files trong thư mục
/var/log/mongodb
2. Các lệnh cơ bản để khởi tạo và sử dụng trong MongoDB
Lệnh khởi động MongoDB:
sudo systemctl start mongod
Nếu gặp lỗi thì bạn chạy lệnh này trước nhé:
sudo systemctl daemon-reload
Lệnh kiểm tra tình trạng của MongoDB:
sudo systemctl status mongod
Lệnh để đặt MongoDB luôn khởi động cùng với VPS:
sudo systemctl enable mongod
Lệnh dừng MongoDB:
sudo systemctl stop mongod
Lệnh khởi động lại MongoDB:
sudo systemctl restart mongod
Lệnh để vào bắt đầu dùng MongoDB:
mongosh
Lệnh để hiển thị tất cả các user trên MongoDB:
show users
Lệnh để đăng nhập vào MongoDB khi đã cấu hình bật bảo mật xác thực cho MongoDB:
db.auth("myUser", passwordPrompt())
Trong đó myUser chính là tên user của bạn. passwordPrompt() nếu bạn muốn gõ trực tiếp mật khẩu vào sau đó hoặc thay bằng một chuỗi là mật khẩu của bạn.
Các lệnh để xóa MongoDB khỏi VPS:
sudo service mongod stop sudo apt-get purge mongodb-enterprise* sudo rm -r /var/log/mongodb sudo rm -r /var/lib/mongodb
Tiếp theo là tạo database mới, tạo user mới, cấp quyền cho user:
MongoDB có 2 DB gốc là test dùng để thử nghiệm và admin dùng để sử dụng chính thức.
khi sử dụng lệnh mongosh sẽ vào DB gốc test, để chuyển sang DB gốc admin bạn dùng lệnh sau:
use admin
hoặc để tạo một DB mới bạn cũng dùng lên trên nhưng thay “admin” bằng tên DB mới bạn muốn tạo. Ví dụ tạo db “mydb”:
use mydb
Để tạo một user và gán quyền cho user đó bạn sử dụng lệnh sau:
db.createUser({user: 'dtdevpro',pwd: '123456',roles: [{role: 'userAdminAnyDatabase',db: 'admin'}]})
Trong đó: “dtdevpro” là tên user, “123456” là mật khẩu của user đó, “userAdminAnyDatabase” là quyền của user đó, “admin” là tên DB gán user đó vào.
Danh sách các quyền bạn có thể vào link sau để tham khảo và hiểu rõ hơn từng quyền: https://docs.mongodb.com/manual/reference/built-in-roles/#std-label-built-in-roles
3. Hướng dẫn cấu hình truy cập từ xa (Remote Access) cho MongoDB của bạn
Bước đầu tiên là cấu hình tường lửa để thông port 27017 (port mặc định khi tạo mongoDB). Bước này thì tùy vào VPS bạn đang sử dụng tường lửa nào thì bạn thông port nhé. Mình không hướng dẫn chi tiết ở đây. Nguyên tắc là tưởng lửa phải cho thông port này thì bạn mới truy cập từ xa vào MongoDB của bạn được.
Bước tiếp theo bạn mở file cấu hình của mongoDB tại đường dẫn sau: /etc/mongod.conf
... # network interfaces net: port: 27017 bindIp: 127.0.0.1 ...
Sau đó sửa lại như sau:
... # network interfaces net: port: 27017 bindIp: 127.0.0.1, "IP VPS của bạn" ...
Hoặc để cấu hình mở tất cả các IP v4 lẫn v6 như sau:
... # network interfaces net: port: 27017 bindIp: ::,0.0.0.0 ...
Ngoài ra để đảm bảo bảo mật bạn phải bật xác thực lên bằng cách cũng trong file này bạn tìm đến dòng:
... #security: ...
Sửa lại thành:
#security: security: authorization: enabled
Rồi đến đây là hoàn thành việc cấu hình mở truy cập từ xa (Remote Access) cho MongoDB của bạn rồi đấy.
Bạn chỉ cầu khởi động lại VPS và tận hưởng thành quả nhé! Chúc các bạn thành công!