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

Hướng dẫn install  mongoDB trên CentOS 7 image 78

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

# 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
# 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

4 . 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
# 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]
>

5. 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
# iptables -A INPUT -p tcp --dport 27017 -j ACCEPT

Viết câu trả lời

Drop Images

0 Bình luận