MongoDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở thuộc họ NoSQL. Nó được thiết kế theo kiểu hướng đối tượng, các bảng trong MongoDB được cấu trúc rất linh hoạt, cho phép các dữ liệu lưu trữ trên bảng không cần tuân theo một cấu trúc nhất định nào cả (điều này rất thích hợp để làm big data). MongoDB lưu trữ dữ liệu theo hướng tài liệu (document), các dữ liệu được lưu trữ trong document kiểu JSON nên truy vấn sẽ rất nhanh. Hôm nay qua bài viết này các bạn sẽ biết cách cài đặt dịch vụ MongoDB 3.4 trên CentOS 7.
Trang chủ : https://www.mongodb.com
Phiên bản : 3.4
Contents
1. Tạo MongoDB Repository
Giờ bạn sẽ tạo một file cấu hình Repository dành cho MongoDB version 3.4 .
# vi /etc/yum.repos.d/mongodb.repo [mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
Cập nhật thông tin Repository mới.
# yum repolist
2. Cài đặt MongoDB 3.4 trên CentOS 7
Giờ ta tiến hành cài đặt gói chương trình ‘mongodb-org‘. Khi bạn cài đặt gói này sẽ bao gồm các thành phần sau được cài đặt theo:
- mongodb-org-server : chương trình dịch vụ MongoDB (mongod) với các file cấu hình, init scripts,.. The server daemon (mongod) with init scripts and configurations.
- mongodb-org-mongos : dịch vụ MongoDB Shard.
- mongodb-org-shell : MongoDB shell, môi trường console dịch vụ MongoDB.
- mongodb-org-tools : chứa các chương trình tiện ích hỗ trợ MongoDB như import, export, restore, dump,…
Thực hiện cài bằng lệnh ‘yum’, sau khi cài đặt chương trình dịch vụ MongoDB sẽ có tên trên hệ thống là ‘mongod‘.
# yum -y install mongodb-org
Một số file hoạt động của dịch vụ mongod :
- /etc/mongod.conf : file cấu hình dịch vụ mongod .
- /var/log/mongodb/mongod.log : file log dịch vụ mongod .
3. Thiết lập giá trị ulimit
Trên hệ thống Linux, thường quy định giá trị cấu hình ‘ulimit‘ nhằm giới hạn số lượng tiến trình (process), file được mở (open file), file descriptor được tạo hay share memory có thể tạo,… nếu giá trị thấp thường sẽ gây các vấn đề nhất định cho hoạt động dịch vụ MongoDB. Vì vậy ta nên tăng giới hạn cấu hình ulimit lên.
# vi /etc/security/limits.d/99-mongodb-nproc.conf mongod soft nofile 64000 mongod hard nofile 64000 mongod soft nproc 64000 mongod hard nproc 64000
3. Khởi động dịch vụ MongoDB và kiểm tra dịch vụ
Giờ ta sẽ khởi động dịch vụ MongoDB và thiết lập dịch vụ mongod khởi động cùng hệ thống CentOS 7.
# systemctl start mongod # systemctl enable mongod
Kiểm tra trạng thái dịch vụ MongoDB.
# systemctl status mongod
Kiểm tra xem đã có tiến trình dịch vụ mongod đang chạy chưa.
# ps axu | grep mongod mongod 8631 1.2 3.5 851680 36276 ? Sl 21:57 0:00 /usr/bin/mongod -f /etc/mongod.conf
Kiểm tra xem dịch vụ MongoDB đã lắng nghe port 27017 mặc định của mongod chưa nhé.
# netstat -alnpt | grep "27017" tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 8631/mongod
Kiểm tra phiên bản chương trình MongoDB đang chạy.
# mongod --version db version v3.4.9 git version: 876ebee8c7dd0e2d992f36a848ff4dc50ee6603e OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013 allocator: tcmalloc modules: none build environment: distmod: rhel72 distarch: x86_64 target_arch: x86_64
Thực hiện truy cập dịch vụ mongod bằng giao diện console MongoDB.
# mongo MongoDB shell version v3.4.9 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.4.9 Welcome to the MongoDB shell. For interactive help, type "help". For more comprehensive documentation, see http://docs.mongodb.org/ Questions? Try the support group http://groups.google.com/group/mongodb-user Server has startup warnings: 2017-10-17T21:57:51.404+0700 I STORAGE [initandlisten] 2017-10-17T21:57:51.404+0700 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine 2017-10-17T21:57:51.404+0700 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem 2017-10-17T21:57:51.913+0700 I CONTROL [initandlisten] 2017-10-17T21:57:51.914+0700 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database. 2017-10-17T21:57:51.914+0700 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted. 2017-10-17T21:57:51.914+0700 I CONTROL [initandlisten] 2017-10-17T21:57:51.914+0700 I CONTROL [initandlisten] 2017-10-17T21:57:51.914+0700 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. 2017-10-17T21:57:51.914+0700 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2017-10-17T21:57:51.914+0700 I CONTROL [initandlisten] 2017-10-17T21:57:51.914+0700 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. 2017-10-17T21:57:51.914+0700 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2017-10-17T21:57:51.914+0700 I CONTROL [initandlisten] 2017-10-17T21:57:51.914+0700 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 1024 processes, 262144 files. Number of processes should be at least 131072 : 0.5 times number of files. 2017-10-17T21:57:51.915+0700 I CONTROL [initandlisten] >
4. Thiết lập firewall rule cho dịch vụ MongoDB
Như đã biết mặc định dịch vụ MongoDB lắng nghe trên port 27017 TCP, vì vậy nếu bạn có sử dụng các chương trình firewall khác nhau thì hãy allow kết nối đến port 27017 . Ví dụ, tường lửa ‘iptables‘.
# iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
Vậy là bạn đã biết cách cài đặt MongoDB 3.4 trên CentOS 7 rồi phải không nào. Nếu có thắc mắc gì đừng ngại comment trao đổi cùng ‘Cuongquach.com‘ nhé.
Nguồn : Cuongquach.com