Thứ tư, 05/09/2018 | 00:00 GMT+7

Cách cài đặt MongoDB trên Debian 9

MongoDB là database tài liệu NoSQL open-souce miễn phí được sử dụng phổ biến trong các ứng dụng web hiện đại.

Trong hướng dẫn này, bạn sẽ cài đặt MongoDB, quản lý dịch vụ của nó và tùy chọn cho phép truy cập từ xa.

Yêu cầu

Để làm theo hướng dẫn này, bạn cần một server Debian 9 được cài đặt theo hướng dẫn cài đặt server ban đầu này, bao gồm một user không phải root được kích hoạt sudo và firewall .

Bước 1 - Cài đặt MongoDB

Repository chính thức của Debian 9 bao gồm version MongoDB hơi lỗi thời, nghĩa là ta sẽ cài đặt từ kho MongoDB chính thức.

Đầu tiên, ta cần thêm khóa ký MongoDB với thêm apt-key add . Ta cần đảm bảo lệnh curl được cài đặt trước khi thực hiện:

  • sudo apt install curl

Tiếp theo, ta download khóa và chuyển nó vào apt-key add :

  • curl https://www.mongodb.org/static/pgp/server-4.0.asc | sudo apt-key add -

Tiếp theo, ta sẽ tạo một danh sách nguồn cho kho MongoDB, vì vậy apt biết download từ đâu. Đầu tiên hãy mở file danh sách nguồn trong editor :

  • sudo nano /etc/apt/sources.list.d/mongodb-org-4.0.list

Thao tác này sẽ mở một file trống mới. Dán vào phần sau:

/etc/apt/sources.list.d/mongodb-org-4.0.list
deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main 

Lưu file , sau đó cập nhật bộ nhớ cache gói của bạn:

  • sudo apt update

Cài đặt gói mongodb-org để cài đặt server và một số công cụ hỗ trợ:

  • sudo apt-get install mongodb-org

Cuối cùng, kích hoạt và khởi động dịch vụ mongod để database MongoDB của bạn đang chạy:

  • sudo systemctl enable mongod
  • sudo systemctl start mongod

Hiện ta đã cài đặt và chạy version MongoDB ổn định mới nhất, cùng với các công cụ quản lý hữu ích cho server MongoDB.

Tiếp theo, hãy xác minh server đang chạy và hoạt động chính xác.

Bước 2 - Kiểm tra Dịch vụ và Database

Ta đã bắt đầu dịch vụ MongoDB ở bước trước, bây giờ hãy xác minh nó đã được khởi động và database đang hoạt động.

Trước tiên, hãy kiểm tra trạng thái của dịch vụ:

  • sudo systemctl status mongod

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

Output
mongod.service - MongoDB Database Server Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2018-09-05 16:59:56 UTC; 3s ago Docs: https://docs.mongodb.org/manual Main PID: 4321 (mongod) Tasks: 26 CGroup: /system.slice/mongod.service └─4321 /usr/bin/mongod --config /etc/mongod.conf

Theo systemd , server MongoDB đang hoạt động.

Ta có thể xác minh thêm điều này bằng cách kết nối với server database và chạy lệnh kiểm tra

Thực hiện lệnh này:

  • mongo --eval 'db.runCommand({ connectionStatus: 1 })'

Thao tác này sẽ xuất ra version database hiện tại, địa chỉ server và cổng cũng như kết quả của trạng thái lệnh :

Output
MongoDB shell version v4.0.2 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 4.0.2 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }

Giá trị 1 cho trường ok trong phản hồi cho biết rằng server đang hoạt động bình thường.

Tiếp theo, ta sẽ xem xét cách quản lý version server .

Bước 3 - Quản lý Dịch vụ MongoDB

MongoDB cài đặt như một dịch vụ systemd, nghĩa là bạn có thể quản lý nó bằng các lệnh systemd tiêu chuẩn cùng với tất cả các dịch vụ hệ thống khác trong Ubuntu.

Để xác minh trạng thái của dịch vụ, hãy nhập:

  • sudo systemctl status mongod

Bạn có thể dừng server bất cứ lúc nào bằng lệnh :

  • sudo systemctl stop mongod

Để khởi động server khi nó bị dừng, hãy nhập:

  • sudo systemctl start mongod

Bạn cũng có thể khởi động lại server bằng một lệnh duy nhất:

  • sudo systemctl restart mongod

Ở bước trước, ta đã kích hoạt MongoDB tự động khởi động với server . Nếu bạn muốn tắt tính năng khởi động tự động, hãy nhập:

  • sudo systemctl disable mongod

Thật dễ dàng để chạy lại nó. Để làm điều này, hãy sử dụng:

  • sudo systemctl enable mongod

Tiếp theo, hãy điều chỉnh cài đặt firewall cho cài đặt MongoDB của ta .

Bước 4 - Điều chỉnh firewall (Tùy chọn)

Giả sử bạn đã làm theo hướng dẫn cài đặt server ban đầu để bật firewall trên server của bạn , server MongoDB sẽ không thể truy cập được từ internet.

Nếu bạn định chỉ sử dụng server MongoDB local với các ứng dụng chạy trên cùng một server , thì đây là cài đặt được khuyến khích và bảo mật. Tuy nhiên, nếu bạn muốn có thể kết nối với server MongoDB của bạn từ internet, bạn phải cho phép các kết nối đến trong ufw .

Để cho phép truy cập vào MongoDB trên cổng mặc định 27017 từ mọi nơi, bạn có thể sử dụng sudo ufw allow 27017 . Tuy nhiên, cho phép truy cập internet vào server MongoDB trên cài đặt mặc định cho phép bất kỳ ai truy cập không hạn chế vào server database và dữ liệu của nó.

Trong hầu hết các trường hợp, MongoDB chỉ nên được truy cập từ một số vị trí tin cậy , chẳng hạn như một server khác lưu trữ ứng dụng. Để thực hiện tác vụ này, bạn có thể cho phép truy cập trên cổng mặc định của MongoDB trong khi chỉ định địa chỉ IP của server khác sẽ được phép kết nối một cách rõ ràng:

  • sudo ufw allow from your_other_server_ip/32 to any port 27017

Bạn có thể kiểm tra thay đổi trong cài đặt firewall với ufw :

  • sudo ufw status

Bạn sẽ thấy lưu lượng đến cổng 27017 được phép trong kết quả :

Đầu ra
Status: active  To                         Action      From --                         ------      ---- OpenSSH                    ALLOW       Anywhere 27017                      ALLOW       Anywhere OpenSSH (v6)               ALLOW       Anywhere (v6) 27017 (v6)                 ALLOW       Anywhere (v6) 

Nếu bạn đã quyết định chỉ cho phép một địa chỉ IP nhất định kết nối với server MongoDB, địa chỉ IP của vị trí được phép sẽ được liệt kê thay vì Anywhere trong kết quả .

Bạn có thể tìm thêm cài đặt firewall nâng cao để hạn chế quyền truy cập vào các dịch vụ trong UFW Essentials: Common Firewall Rules and Commands .

Mặc dù cổng đang mở, MongoDB hiện chỉ nghe trên địa chỉ local 127.0.0.1 . Để cho phép các kết nối từ xa, hãy thêm địa chỉ IP có thể định tuyến công khai của server của bạn vào file mongod.conf .

Mở file cấu hình MongoDB trong editor :

  • sudo nano /etc/mongod.conf

Thêm địa chỉ IP của server của bạn vào giá trị bindIP :

/etc/mongod.conf
. . . # network interfaces net:   port: 27017   bindIp: 127.0.0.1,your_server_ip . . . 

Đảm bảo đặt dấu phẩy giữa địa chỉ IP hiện có và địa chỉ bạn đã thêm.

Lưu file , thoát khỏi editor và khởi động lại MongoDB:

  • sudo systemctl restart mongod

MongoDB hiện đang lắng nghe các kết nối từ xa, nhưng bất kỳ ai cũng có thể truy cập. Làm theo Phần 2 của Cách cài đặt và bảo mật MongoDB trên Ubuntu 16.04 để thêm admin-user và khóa mọi thứ thêm.

Kết luận

Bạn có thể tìm thấy các hướng dẫn chuyên sâu hơn về cách cấu hình và sử dụng MongoDB trong các bài viết cộng đồng DigitalOcean này . Tài liệu MongoDB chính thức cũng là một tài nguyên tuyệt vời về các khả năng mà MongoDB cung cấp.


Tags:

Các tin liên quan