Làm thế nào để cài đặt hệ thống cơ sở dữ liệu MongoDB trên Ubuntu?

MongoDB

Trong blog này, chúng tôi đã nói về một số hệ thống cơ sở dữ liệu, trong đó phổ biến nhất là MariaDB và MySQL, vì chúng là những hệ thống thường được bao gồm trong Xampp hoặc Lampp. Lần này chúng ta sẽ nói về một hệ thống khác là MongoDB

MongoDB là một hệ thống cơ sở dữ liệu NoSQL định hướng tài liệu nguồn mở, Đây là một hệ thống quản lý cơ sở dữ liệu tài liệu hiện đại được thiết kế để lưu trữ dữ liệu hiệu suất cao, tính sẵn sàng cao, cũng như tự động mở rộng, dựa trên công nghệ của kỹ thuật NoSQL.

Thay vì lưu dữ liệu trong bảng như được thực hiện trong cơ sở dữ liệu quan hệ, MongoDB lưu cấu trúc dữ liệu trong tài liệu, là cấu trúc dữ liệu bao gồm các cặp trường và giá trị (tài liệu MongoDB có thể so sánh với các đối tượng JSON).

Bởi vì nó cung cấp hiệu suất cao và các đặc điểm khả năng mở rộng tuyệt vời, nó đang được sử dụng để xây dựng các ứng dụng hiện đại yêu cầu cơ sở dữ liệu mạnh mẽ, quan trọng và có tính khả dụng cao.

Cài đặt MongoDB trên Ubuntu

Để cài đặt hệ thống cơ sở dữ liệu này trên hệ thống của chúng tôi, Chúng tôi chỉ phải mở một thiết bị đầu cuối và thực hiện lệnh sau trong đó:

sudo apt install mongodb

Cài đặt xong, Dịch vụ MongoDB sẽ tự động bắt đầu thông qua systemd và quá trình sẽ chạy trên cổng 27017. Bạn có thể kiểm tra trạng thái của nó bằng lệnh:

sudo systemctl status mongodb

Nếu không, chúng ta có thể bắt đầu bằng lệnh này:

sudo systemctl start mongodb

Bật kết nối từ xa với MongoDB

Mongo DB 1

Hệ thống cơ sở dữ liệu MongoDB theo mặc định sử dụng cổng 27017 mà chúng ta phải mở Để chấp nhận các kết nối từ xa, chúng tôi chỉ kích hoạt nó bằng lệnh sau.

sudo ufw allow 27017

Theo mặc định, cổng 27017 chỉ có thể được truy cập từ địa chỉ cục bộ 127.0.0.1. Để cho phép các kết nối từ xa tới MongoDB, cần thêm địa chỉ IP của máy chủ vào tệp /etc/mongodb.conf

Chỉ cần chỉnh sửa nó bằng:

sudo nano

Và chúng ta có thể thấy một cái gì đó tương tự như thế này:

bind_ip = 127.0.0.1, your_server_ip

#port = 27,017

Chúng tôi chỉnh sửa với dữ liệu từ máy chủ của chúng tôi.

Cho phép truy cập vào MongoDB từ mọi nơi, nó cho phép truy cập không hạn chế vào dữ liệu trong cơ sở dữ liệu. Do đó, tốt hơn là cấp quyền truy cập vào địa chỉ IP mặc định cụ thể của vị trí của cổng MongoDB.

sudo ufw allow from your_server_IP/32 to any port 27017

sudo ufw status

Khi điều này được thực hiện, chỉ cần khởi động lại dịch vụ là đủ để các thay đổi mới được tải vào đầu, chúng tôi thực hiện điều này với:

sudo systemctl restart mongodb

Tạo người dùng trong MongoDB bằng mật khẩu

Theo mặc định, cơ sở dữ liệu có quyền truy cập khá đơn giản, vì vậy để củng cố điều này, chúng ta có thể tạo một người dùng có mật khẩu.

MongoDB sử dụng cơ chế xác thực SCRAM theo mặc định. Sử dụng SCRAM trên hệ thống xác minh thông tin đăng nhập người dùng được cung cấp dựa trên tên người dùng, mật khẩu và cơ sở dữ liệu xác thực.

Chỉ cần khởi động bảng điều khiển cơ sở dữ liệu bằng lệnh sau:

Mongo

Chúng tôi có thể tạo danh sách các cơ sở dữ liệu hiện có với:

show dbs

Chúng tôi có thể tạo một người dùng cho phép chúng tôi quản lý người dùng và các chức năng chẳng hạn như tạo người dùng, cấp hoặc thu hồi vai trò người dùng và tạo hoặc sửa đổi vai trò hải quan.

Chỉ loại

use admin

Và chúng tôi tạo người dùng bằng lệnh sau, nơi chúng tôi thay thế tên của người dùng "root" và "password" của mật khẩu, bằng crecenciales truy cập mà chúng tôi tin rằng phù hợp.

db.createUser({user:"root", pwd:"password", roles:[{role:"root", db:"admin"}]})

Khi điều này được thực hiện, chúng tôi phải bật phương thức xác thực vì điều này, chúng tôi sẽ chỉnh sửa tệp sau:

sudo nano /lib/systemd/system/mongodb.service

Và chúng tôi sẽ tìm kiếm dòng tiếp theo:

ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS

chỉnh sửa để nó như sau:

ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS

Bây giờ chúng tôi chỉ cần khởi động lại trong cơ sở dữ liệu

systemctl daemon-reload

sudo systemctl restart mongodb

sudo systemctl status mongodb              

Y Chúng tôi kiểm tra phương pháp xác thực với:

mongo -u "usuario" -p --authenticationDatabase "contraseña"

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   Có thể phát hiện dijo

    Giúp tôi với LỖI này.

    2021-03-24T21: 33: 16.233 + 0000 E QUERY [thread1] Error: listDatabases failed: {
    «Được»: 0,
    "Errmsg": "không được quản trị viên ủy quyền thực thi lệnh {listDatabases: 1.0, $ db: \" admin \ "}",
    "Mã": 13,
    "CodeName": "Trái phép"
    }:
    _getErrorWithCode@src/mongo/shell/utils.js: 25:13
    Mongo.prototype.getDBs@src/mongo/shell/mongo.js: 65: 1
    shellHelper.show@src/mongo/shell/utils.js: 816: 19
    shellHelper@src/mongo/shell/utils.js: 706: 15
    @ (shellhelp2): 1: 1