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 trên CentOS 7.
Trang chủ : https://www.mongodb.com
Phiên bản : 3.4
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
# yum repolist
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:
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
# yum -y install mongodb-org
Một số file hoạt động của dịch vụ mongod :
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
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
# systemctl start mongod
# systemctl enable mongod
Kiểm tra trạng thái dịch vụ MongoDB.
# systemctl status mongod
# 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]
>
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
# iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
Unpublished comment
Viết câu trả lời