อยู่ในช่วงกำลังศึกษา 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