Cách cài đặt và cấu hình MongoDB trên CentOS 7

theanh

Administrator
Nhân viên
MongoDB là một cơ sở dữ liệu NoSQL cung cấp hiệu suất cao, tính khả dụng cao và khả năng mở rộng tự động. Cơ sở dữ liệu NoSQL có nghĩa là, không giống như MySQL hoặc PostgreSQL, nó không hỗ trợ SQL (Ngôn ngữ truy vấn có cấu trúc) để truy xuất hoặc thao tác dữ liệu đã lưu trữ. MongoDB không lưu trữ dữ liệu trong các bảng, thay vào đó, nó lưu trữ dữ liệu trong cấu trúc "tài liệu" tương tự như JSON (trong MongoDB được gọi là BSON). MongoDB lần đầu tiên được giới thiệu vào năm 2009, cách đây sáu năm. Hiện được phát triển bởi công ty MongoDB MongoDB Inc.

Trong hướng dẫn này, tôi sẽ hướng dẫn bạn cài đặt và cấu hình MongoDB 3.2 (ổn định) trên máy chủ CentOS 7. Chúng tôi sẽ thêm và cấu hình người dùng quản trị cho MongoDB và cấu hình xác thực cho các dịch vụ MongoDB.


Điều kiện tiên quyết​

  • CentOS 7
  • Quyền root
Những gì chúng ta sẽ làm trong hướng dẫn này:
  1. Thêm kho lưu trữ MongoDB.
  2. Cài đặt MongoDB.
  3. Sửa một số lỗi MongoDB.
  4. Tạo người dùng quản trị.
  5. Bật xác thực và kiểm tra MongoDB.

Bước 1 - Thêm kho lưu trữ MongoDB vào CentOS​

Kết nối với máy chủ CentOS 7 của bạn bằng tài khoản root ssh:
Mã:
ssh [emailprotected]
Chúng ta cần đến thư mục 'yum.repos.d' để thêm kho lưu trữ CentOS mới. Vào thư mục đó và tạo tệp kho lưu trữ mới 'mongodb-org-3.2.repo' bằng vim:
Mã:
cd /etc/yum.repos.d/
vim mongodb-org-3.2.repo
Dán cấu hình kho lưu trữ MongoDB được hiển thị bên dưới:
Mã:
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
Lưu tệp và thoát khỏi trình chỉnh sửa.


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

Chúng tôi đã thêm kho lưu trữ MongoDB, bây giờ hãy kiểm tra danh sách kho lưu trữ trên máy chủ để đảm bảo rằng kho lưu trữ MongoDB có sẵn trong danh sách.

Chạy lệnh bên dưới với tư cách là root để thực hiện:
Mã:
yum repolist
Bạn sẽ thấy kết quả bên dưới. Kho lưu trữ MongoDB nằm trong danh sách.



Tiếp theo, cài đặt MongoDB bằng lệnh yum.
Mã:
yum -y install mongodb-org
Khi quá trình cài đặt hoàn tất, hãy khởi động MongoDB bằng lệnh systemctl này:
Mã:
systemctl start mongod
Kiểm tra xem MongoDB có đang chạy không bằng cách kiểm tra xem cổng '27017' có mở không.
Mã:
netstat -plntu
Và đảm bảo rằng dịch vụ mongodb đang hoạt động.
Mã:
systemctl status mongod



Bước 3 - Sửa lỗi MongoDB​

MongoDB đã được cài đặt. Bây giờ chúng ta có thể truy cập shell mongodb bằng cách sử dụng lệnh bên dưới:
Mã:
mongo
Bạn có thể sẽ thấy lỗi này về cấu hình ulimit trên máy chủ.
Mã:
** CẢNH BÁO: soft rlimits quá thấp. rlimits được đặt thành 4096 quy trình, 64000 tệp. Số lượng quy trình phải ít nhất là 32000...


Ulimits hoặc User limits xác định lượng tài nguyên trên toàn hệ thống mà người dùng có thể sử dụng.

Để giải quyết vấn đề này, chúng ta cần tăng cấu hình ulimit của người dùng mongod.

Trên máy chủ CentOS 7, cơ sở dữ liệu MongoDB đang chạy dưới người dùng 'mongod'. Vào thư mục 'security' và chỉnh sửa tệp cấu hình 'limits.conf'.
Mã:
cd /etc/security/
vim limits.conf
Tôi sẽ tăng giới hạn của người dùng mongod lên '64000' - số lượng tiến trình hoặc nproc và số lượng tệp đang mở hoặc nofile lên 64000.

Dán cấu hình mới bên dưới vào cuối tệp:
Mã:
mongod soft nproc 64000
mongod hard nproc 64000
mongod soft nofile 64000
mongod hard nofile 64000
Lưu tệp limits.conf.

Chạy lệnh sysctl bên dưới để áp dụng các giới hạn đã thay đổi cho hệ thống:
Mã:
sysctl -p
Sau đó, khởi động lại dịch vụ MongoDB và thử lại để truy cập shell mongo, lỗi đã biến mất.
Mã:
systemctl restart mongod
mongo



Bước 4 - Tạo Người dùng Quản trị MongoDB​

Trong bước này, chúng ta sẽ tạo một người dùng mới "admin" cho MongoDB với vai trò 'UserAdminAnyDatabase' từ shell mongo.

Mở shell mongodb:
Mã:
mongo
Tôi sẽ tạo người dùng quản trị mới có tên 'admin' với mật khẩu 'admin123'. Vui lòng sử dụng mật khẩu an toàn trên máy chủ của bạn. Sau đó, chúng ta sẽ cấu hình vai trò của người dùng là 'UserAdminAnyDatabase'.

Chuyển sang cơ sở dữ liệu 'admin'.
Mã:
sử dụng admin
Nhập truy vấn MongoDB bên dưới để tạo người dùng quản trị viên mới:
Mã:
db.createUser(
 {
 user: "admin",
 pwd: "admin123",
 roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
 }
)
Tiếp theo, hãy đảm bảo rằng người dùng đã được tạo bằng truy vấn MongoDB bên dưới.
Mã:
show users


Người dùng quản trị viên MongoDB đã được tạo.


Bước 5 - Bật Xác thực Người dùng trong MongoDB​

Trong bước này, chúng tôi sẽ bật xác thực cho người dùng để ngăn người dùng khác không có đủ đặc quyền có thể xem dữ liệu trên cơ sở dữ liệu.

Trên máy chủ CentOS 7 của chúng tôi, MongoDB đang chạy dưới systemd với một tập lệnh init trong Thư mục '/etc/init.d/'. Chúng ta sẽ chỉnh sửa tập lệnh đó để buộc dịch vụ mongodb chạy với tùy chọn '--auth'.

Đi tới thư mục '/etc/init.d/' và chỉnh sửa tệp "mongod":
Mã:
Mã:
cd /etc/init.d/
vim mongod
Ở dòng 15, bạn sẽ tìm thấy biến "OPTION", tại đó chúng ta sẽ thêm tùy chọn "mongod".
Mã:
OPTIONS=" --auth -f $CONFIGFILE"
Lưu tệp.

Tải lại dịch vụ systemd và khởi động lại MongoDB.
Mã:
systemctl daemon-reload
systemctl restart mongod
Tiếp theo, chúng ta phải kiểm tra cấu hình bằng cách đăng nhập vào shell mongo và chuyển sang cơ sở dữ liệu quản trị, sau đó thử xem người dùng quản trị.
Mã:
mongo
 
use admin
show users
Bạn sẽ thấy lỗi về việc thực thi lệnh trái phép trong quản trị cơ sở dữ liệu. Bây giờ chúng ta cần sử dụng lệnh 'db.auth()' để xác thực.
Mã:
db.auth('admin', 'admin123')
Bây giờ bạn có thể thấy người dùng với vai trò và đặc quyền của họ.



MongoDB 3.2 đã được cài đặt và cấu hình trên CentOS 7 Server.


Liên kết​

 
Back
Bên trên