ติดตั้ง MongoDB v3.0 บน CentOS 7

อยู่ในช่วงกำลังศึกษา NoSQL เพื่อหาวิธีการจัดเก็บข้อมูลแบบใหม่ ให้สามารถรองรับจำนวนข้อมูลขนาดใหญ่ ที่ไม่อยู่ในรูปแบบที่แน่นอน (non SQL)

หลายสำนักเห็นตรงกันว่าให้ลองใช้ MongoDB ซึ่งเป็นที่นิยมกันมาก ด้วยคุณสมบัติ ประสิทธิภาพ เอกสาร คู่มือการใช้งาน วิธีการแก้ไขปัญหา ก็มีแพร่หลายอยู่บนอินเทอร์เน็ต โปรแกรมภาษาต่างๆ ก็มีโมดูลในการเขียนโปรแกรมเชื่อมต่อแล้ว แถมยังสามารถใช้งานได้ฟรีอีกด้วย

เริ่มต้นลองมาดูวิธีการติดตั้ง MongoDB บน CentOS 7 เพื่อรันเป็นเซิร์ฟเวอร์กัน

ที่จริงใน EPEL Repo ก็มีแพ็กเกจ mongodb ด้วยเหมือนกัน แต่เป็นเวอร์ชันเก่าคือ 2.6.11

[alice@cent7 ~]$ yum list | grep mongodb
mongodb.x86_64               2.6.11-1.el7​     epel 
mongodb-server.x86_64        2.6.11-1.el7     epel

ในที่นี้จะติดตั้ง MongoDB v3.0 ซึ่งเป็นเวอร์ชันหลักล่าสุด ตามคำแนะนำบนเว็บไซต์ทางการของ MongoDB เอง ซึ่งล่าสุดตอนที่เขียนนี้เป็นเวอร์ชัน 3.0.6

สร้างไฟล์ repo ของ MongoDB สำหรับเวอร์ชันหลัก 3.0

[alice@cent7 ~]$ sudo vi /etc/yum.repos.d/mongodb-org-3.0.repo
[mongodb-org-3.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=1

ใช้คำสั่ง yum list เพื่อดูรายชื่อแพ็กเกจจาก repo ของ mongodb

[alice@cent7 ~]$ yum list | grep mongodb-org
mongodb-org.x86_64           3.0.6-1.el7     mongodb-org-3.0
mongodb-org-mongos.x86_64    3.0.6-1.el7     mongodb-org-3.0
mongodb-org-server.x86_64    3.0.6-1.el7     mongodb-org-3.0
mongodb-org-shell.x86_64     3.0.6-1.el7     mongodb-org-3.0
mongodb-org-tools.x86_64     3.0.6-1.el7     mongodb-org-3.0

หมายเหตุ สังเกตว่าแพ็กเกจจาก repo ของ mongodb เอง จะใช้ชื่อ -org ต่อท้าย เพื่อให้แตกต่างจากแพ็กเกจที่อยู่ใน EPEL ซึ่งจะใช้ชื่อ mongodb เฉยๆ ไม่มี -org ต่อท้าย

ใช้คำสั่ง yum install ติดตั้งแพ็กเกจ mongodb-org

[alice@cent7 ~]$ sudo yum install mongodb-org
...
Installed:
 mongodb-org.x86_64 0:3.0.6-1.el7

Dependency Installed:
 mongodb-org-mongos.x86_64 0:3.0.6-1.el7
 mongodb-org-server.x86_64 0:3.0.6-1.el7
 mongodb-org-shell.x86_64 0:3.0.6-1.el7
 mongodb-org-tools.x86_64 0:3.0.6-1.el7

Complete!

ใช้คำสั่ง systemctl start เพื่อรันเซอร์วิส mongod (ไม่มีตัวอักษร b ต่อท้าย)

[alice@cent7 ~]$ sudo systemctl start mongod

ลองพิมพ์ mongo ซึ่งเป็นคำสั่งเชลข์ (shell) ฝั่งไคลเอนต์ของ MongoDB

[alice@cent7 ~]$ mongo
MongoDB shell version: 3.0.6
connecting to: test
Server has startup warnings: 
2015-10-03T20:38:52.601+0700 I STORAGE [initandlisten] 
2015-10-03T20:38:52.601+0700 I STORAGE [initandlisten] ** WARNING: Readahead for /var/lib/mongo is set to 4096KB
2015-10-03T20:38:52.601+0700 I STORAGE [initandlisten] ** We suggest setting it to 256KB (512 sectors) or less
2015-10-03T20:38:52.601+0700 I STORAGE [initandlisten] ** http://dochub.mongodb.org/core/readahead
2015-10-03T20:38:52.676+0700 I CONTROL [initandlisten] 
2015-10-03T20:38:52.676+0700 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2015-10-03T20:38:52.676+0700 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2015-10-03T20:38:52.676+0700 I CONTROL [initandlisten] 
2015-10-03T20:38:52.676+0700 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2015-10-03T20:38:52.676+0700 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2015-10-03T20:38:52.676+0700 I CONTROL [initandlisten] 
2015-10-03T20:38:52.676+0700 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.
2015-10-03T20:38:52.676+0700 I CONTROL [initandlisten] 
>

หมายเหตุ ในการติดตั้งเบื้องต้นนี้ จะยังไม่แก้ไขข้อความ WARNING ที่แสดงขึ้นมา

ลองใช้คำสั่ง db.version() เพื่อดูข้อมูลเวอร์ชัน

> db.version()
3.0.6

ใช้คำสั่ง exit เพื่อออกจากเชลล์ mongo

> exit
bye

ข้อมูลอ้างอิง

Leave a Reply

Your email address will not be published.