Trong bài viết này, chúng ta sẽ tìm hiểu cách cài đặt và cấu hình MongoDB trên CentOS 7, MongoDB là một cơ sở dữ liệu mã nguồn mở và miễn phí (là một cơ sở dữ liệu NoSQL), có nghĩa là nó là một cơ sở dữ liệu hướng tài liệu, nó lưu trữ tài liệu. có cấu trúc tương tự như JSON (trong MongoDB, nó được gọi là BSON) với tính khả dụng, hiệu suất cao và tự động mở rộng. Không giống như RDBMS, nó không cần bất kỳ lược đồ cơ sở dữ liệu xác định trước nào để thêm dữ liệu vào các bảng cơ sở dữ liệu. Chúng tôi có thể thay đổi giản đồ bất kỳ lúc nào mà không làm ảnh hưởng đến lược đồ hiện có.
Điều kiện tiên quyết
- Centos 7 đã được cài đặt trên Máy Linux.
- Người dùng có đặc quyền của người dùng root.
Thêm Kho lưu trữ MongoDB
Theo mặc định, kho lưu trữ MongoDB không có trong kho lưu trữ CentOS 7, chúng tôi cần thêm kho lưu trữ MongoDB vào máy cục bộ.
# vi /etc/yum.repos.d/mongodb-org.repo Output: [mongodb-org-3.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/ gpgcheck=1 enabled=1gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
Khi chúng tôi thêm kho lưu trữ MongoDB vào máy cục bộ, chúng tôi sẽ hệ thống để yum kiểm tra thông tin kho lưu trữ.
# yum update Output: Loaded plugins: fastestmirror base | 3.6 kB 00:00 extras | 3.4 kB 00:00 mongodb-org-3.2 | 2.5 kB 00:00 updates | 3.4 kB 00:00 mongodb-org-3.2/7/primary_db | 54 kB 00:01 Determining fastest mirrors * base: mirror.dhakacom.com * extras: mirror.dhakacom.com * updates: mirror.dhakacom.com No packages marked for update
Cài đặt MongoDB
Vì thông tin chi tiết về kho lưu trữ được cập nhật trên máy cục bộ, bây giờ chúng tôi sẽ cài đặt MongoDB bằng lệnh yum.
Dưới đây là lệnh cài đặt MongoDB.
# yum install mongodb-org Output: Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.dhakacom.com * extras: mirror.dhakacom.com * updates: mirror.dhakacom.com Resolving Dependencies --> Running transaction check ---> Package mongodb-org.x86_64 0:3.2.11-1.el7 will be installed … … … ---> Package mongodb-org-mongos.x86_64 0:3.2.11-1.el7 will be installed ---> Package mongodb-org-server.x86_64 0:3.2.11-1.el7 will be installed ---> Package mongodb-org-shell.x86_64 0:3.2.11-1.el7 will be installed ---> Package mongodb-org-tools.x86_64 0:3.2.11-1.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: mongodb-org x86_64 3.2.11-1.el7 mongodb-org-3.2 5.8 k Installing for dependencies: mongodb-org-mongos x86_64 3.2.11-1.el7 mongodb-org-3.2 5.6 M mongodb-org-server x86_64 3.2.11-1.el7 mongodb-org-3.2 12 M mongodb-org-shell x86_64 3.2.11-1.el7 mongodb-org-3.2 6.7 M mongodb-org-tools x86_64 3.2.11-1.el7 mongodb-org-3.2 41 M Transaction Summary ================================================================================ Install 1 Package (+4 Dependent packages) Total download size: 66 M Installed size: 201 M Is this ok [y/d/N]:y Downloading packages: warning: /var/cache/yum/x86_64/7/mongodb-org-3.2/packages/mongodb-org-3.2.11-1.el7.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID ea312927: NOKEY Public key for mongodb-org-3.2.11-1.el7.x86_64.rpm is not installed (1/5): mongodb-org-3.2.11-1.el7.x86_64.rpm | 5.8 kB 00:01 (2/5): mongodb-org-mongos-3.2.11-1.el7.x86_64.rpm | 5.6 MB 00:01 (3/5): mongodb-org-shell-3.2.11-1.el7.x86_64.rpm | 6.7 MB 00:00 (4/5): mongodb-org-server-3.2.11-1.el7.x86_64.rpm | 12 MB 00:06 (5/5): mongodb-org-tools-3.2.11-1.el7.x86_64.rpm | 41 MB 00:06 -------------------------------------------------------------------------------- Total 7.3 MB/s | 66 MB 00:08 Retrieving key from https://www.mongodb.org/static/pgp/server-3.2.asc Importing GPG key 0xEA312927: Userid : "MongoDB 3.2 Release Signing Key <[email protected]>" Fingerprint: 42f3 e95a 2c4f 0827 9c49 60ad d68f a50f ea31 2927 From : https://www.mongodb.org/static/pgp/server-3.2.asc Is this ok [y/N]:y Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : mongodb-org-server-3.2.11-1.el7.x86_64 1/5 Installing : mongodb-org-mongos-3.2.11-1.el7.x86_64 2/5 Installing : mongodb-org-tools-3.2.11-1.el7.x86_64 3/5 Installing : mongodb-org-shell-3.2.11-1.el7.x86_64 4/5 Installing : mongodb-org-3.2.11-1.el7.x86_64 5/5 Verifying : mongodb-org-shell-3.2.11-1.el7.x86_64 1/5 Verifying : mongodb-org-tools-3.2.11-1.el7.x86_64 2/5 Verifying : mongodb-org-mongos-3.2.11-1.el7.x86_64 3/5 Verifying : mongodb-org-server-3.2.11-1.el7.x86_64 4/5 Verifying : mongodb-org-3.2.11-1.el7.x86_64 5/5 Installed: mongodb-org.x86_64 0:3.2.11-1.el7 Dependency Installed: mongodb-org-mongos.x86_64 0:3.2.11-1.el7 mongodb-org-server.x86_64 0:3.2.11-1.el7 mongodb-org-shell.x86_64 0:3.2.11-1.el7 mongodb-org-tools.x86_64 0:3.2.11-1.el7 Complete!
Sau khi MongoDD được cài đặt, bây giờ chúng ta sẽ bắt đầu các dịch vụ MongoDB.
Dưới đây là lệnh để khởi động các dịch vụ MongoDB -
# systemctl start mongod
Chúng tôi chạy lệnh dưới đây để kiểm tra trạng thái của các dịch vụ MongoDB.
# systemctl status mongod Output: mongod.service - SYSV: Mongo is a scalable, document-oriented database. Loaded: loaded (/etc/rc.d/init.d/mongod) Active: active (running) since Fri 2016-11-25 14:09:25 IST; 12s ago Docs: man:systemd-sysv-generator(8) Process: 9901 ExecStart=/etc/rc.d/init.d/mongod start (code=exited, status=0/SUCCESS) CGroup: /system.slice/mongod.service └─9912 /usr/bin/mongod -f /etc/mongod.conf Nov 25 14:09:25 localhost.localdomain systemd[1]: Starting SYSV: Mongo is a s... Nov 25 14:09:25 localhost.localdomain runuser[9908]: pam_unix(runuser:session... Nov 25 14:09:25 localhost.localdomain runuser[9908]: pam_unix(runuser:session... Nov 25 14:09:25 localhost.localdomain mongod[9901]: Starting mongod: [ OK ] Nov 25 14:09:25 localhost.localdomain systemd[1]: Started SYSV: Mongo is a sc...Hint: Some lines were ellipsized, use -l to show in full.
Tải lại cấu hình MongoDB
# systemctl reload mongod
Dừng dịch vụ MongoDB
# systemctl stop mongod
Định cấu hình Số quy trình MongoDB
Theo mặc định, khi chúng tôi chạy Mongo, không có quy trình nào quá thấp đến 4096, vì vậy MongoDB sẽ hiển thị lỗi bên dưới -
# mongo Output: MongoDB shell version: 3.2.11 connecting to: test Welcome to the MongoDB shell. For interactive help, type "help". For more comprehensive documentation, see https://docs.mongodb.org/ Questions? Try the support group https://groups.google.com/group/mongodb-user Server has startup warnings: 2016-11-25T14:09:25.553+0530 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 4096 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files. 2016-11-25T14:09:25.553+0530 I CONTROL [initandlisten]
Để khắc phục sự cố không có quy trình, chúng tôi cần chỉnh sửa tệp “20-nproc.conf” tại “/etc/security/limits.d/”
# vi /etc/security/limits.d/20-nproc.conf Output: # Default limit for number of user's processes to prevent # accidental fork bombs. # See rhbz #432903 for reasoning. * soft nproc 4096 root soft nproc unlimited
Chúng tôi cần thay đổi 4096 thành 32000
* soft nproc 32000
Sau khi thay đổi giá trị thành 32000, chúng tôi cần khởi động lại các dịch vụ MongoDB, dưới đây là lệnh khởi động lại các dịch vụ MongoDB.
# systemctl restart mongod
Tạo người dùng quản trị viên MongoDB
Ở đây, chúng tôi sẽ tạo một người dùng với quản trị viên tên người dùng và với mật khẩu “password123”, sau khi tạo người dùng, chúng tôi sẽ kiểm tra danh sách người dùng trong cơ sở dữ liệu.
# mongo Output: MongoDB shell version: 3.2.11 connecting to: test > use admin switched to db admin > db.createUser( ... { ... user: "admin", ... pwd: "password123", ... roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] ... } ... ) Successfully added user: { "user" : "admin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] } > show users; { "_id" : "admin.admin", "user" : "admin", "db" : "admin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] } >
Trong bài này, chúng ta đã tìm hiểu - Cách thêm kho lưu trữ MongoDB vào máy cục bộ và cài đặt MongoDB và chúng ta cũng đã tìm hiểu về cách thay đổi hoặc tăng số không. quy trình từ 4096 đến 32000 trong cấu hình MongoDB và cách tạo người dùng quản trị viên.