Friday, 29 March, 2024
HomeDatabaseMongoDBHướng dẫn cài đặt MongoDB Enterprise Edition trên VPS ubuntu 16.04 LTS,...

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

Đây là bài 1 của 1 trong series Các bài hướng dẫn MongoDB
  • 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 -

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
sudo apt-get install -y mongodb-enterprise

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

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
sudo systemctl status mongod
sudo systemctl enable mongod
sudo systemctl stop mongod
sudo systemctl restart mongod
mongosh
show users
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.

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!

Related articles

Most Popular