ผู้ใช้หลายๆ ท่านคงเคยใช้งาน Database กันมาแล้วหลายตัว อาทิเช่น Mysql , Oracle เป็นต้น และประโยชน์ของ Database ก็คือการจัดเก็บข้อมูลของเราเพื่อใช้ในการบริหารจัดการกับข้อมูลรวมถึงการใช้งานข้อมูลร่วมกัน โดยวันนี้เราจะมาพูดถึง MongoDB และแนะนำการติดตั้ง MongoDB

MongoDB คือ NoSQL ชนิดหนึ่ง โดยข้อดีของ NoSQL ก็คือความสามารถในการเขียนข้อมูลที่รวดเร็ว query ข้อมูลได้เร็ว ทำให้ลดการทำงานของ Database ลง โดยหากต้องการเก็บ Log แบบ Real-time และข้อมูลมีขนาดใหญ่มากๆ ยกตัวอย่างเช่น Facebook หรือ Twitter ที่มีการโพสข้อความ รวมถึงการแจ้งเตือน การอัพเดตตลอดเวลา การใช้งาน MongoDB ก็จะตอบโจทย์ได้เป็นอย่างดี  ***ข้อมูลเพิ่มเติมเรื่อง NOSQL

ในบทนี้เราจะแนะนำในการติดตั้งและกำหนดค่า MongoDB 3.2 บนเซิร์ฟเวอร์ CentOS 7 โดยเราจะเพิ่มการกำหนดค่าผู้ดูแลระบบสำหรับ MongoDB และค่าการพิสูจน์ตัวตนสำหรับบริการ MongoDB

ขั้นตอนที่ 1 – เพิ่ม Repository MongoDB ใน CentOS

เชื่อมต่อกับเซิร์ฟเวอร์ CentOS 7 ด้วย root และไปที่ไดเรกทอรี yum.repos.d แล้วทำการสร้างไฟล์ชื่อ mongodb-org-3.2.repo

วางค่าดังนี้ในไฟล์

จากนั้นทำการบันทึกไฟล์และออกจากไฟล์

ขั้นตอนที่ 2 – การติดตั้ง MongoDB

ตรวจสอบว่ามีการเพิ่ม Repository MongoDB ไว้พร้อมแล้วก่อนทำการติดตั้ง

จะพบว่ามีการเพิ่มค่าเรียบร้อยแล้ว

จากนั้นติดตั้ง MongoDB ด้วยคำสั่ง yum

เมื่อการติดตั้งเสร็จสิ้น สามารถเริ่มต้น MongoDB ด้วยคำสั่ง

และตรวจสอบสถานะของ mongodb ว่าเปิดใช้งานแล้ว

ขั้นตอนที่ 3 – แก้ไขข้อผิดพลาด MongoDB

เมื่อ MongoDB มีการติดตั้งแล้ว เราสามารถเข้าถึง mongodb โดยใช้คำสั่ง

เราจะเห็นข้อผิดพลาดเกี่ยวกับการตั้งค่า ulimit บนเซิร์ฟเวอร์ : ** WARNING: soft rlimits too low. rlimits set to 4096 processes, 64000 files. Number of processes should be at least 32000…

เราจำเป็นต้องเพิ่มการกำหนดค่า ulimit ของ MongoDB บนเซิร์ฟเวอร์ จะทำงานภายใต้ “mongod” ของผู้ใช้

เราจะเพิ่มขีดจำกัดของผู้ใช้ mongod เพิ่ม ‘64000’ – จำนวนของprocess หรือ nproc และจำนวนไฟล์ที่เปิดหรือ nofile ถึง 64000 โดยวางการกำหนดค่าใหม่ด้านล่างท้ายไฟล์

เมื่อเรียบร้อยแล้วทำการบันทึกไฟล์

ใช้คำสั่งดังนี้เพื่อเรียกใช้ขีดจำกัดที่เปลี่ยนแปลงไปกับระบบ

จากนั้นทำการรีสตาร์ทบริการ MongoDB และลองเข้าสู่ Mongo อีกครั้งจะพบว่าข้อผิดพลาดนี้หายไปแล้ว

ขั้นตอนที่ 4 – สร้างผู้ดูแลระบบ MongoDB

ในขั้นตอนนี้เราจะสร้างผู้ใช้ใหม่ “admin” สำหรับ MongoDB พร้อมด้วย ‘UserAdminAnyDatabase’ ด้วยการ ssh

เราจะสร้างผู้ดูแลระบบผู้ใช้ใหม่ชื่อ ‘admin’ ด้วยรหัสผ่าน ‘admin123’ (ค่านี้เป็นเพียงตัวอย่าง แนะนำไม่ควรตั้ง Username/Password ที่คาดเดาง่ายจนเกินไป) จากนั้นเราจะกำหนดค่าบทบาทของผู้ใช้ให้เป็น ‘UserAdminAnyDatabase’ เปลี่ยนไปใช้ ‘admin’

ใส่ข้อมูลเพื่อสร้างผู้ดูแลระบบใหม่

จากนั้นตรวจสอบให้แน่ใจว่าผู้ใช้ถูกสร้างแล้วด้วยคำสั่ง

จากภาพแสดงว่าผู้ดูแลระบบ MongoDB ได้รับการสร้างเรียบร้อยแล้ว

ขั้นตอนที่ 5 – เปิดใช้การรับรองความถูกต้องของผู้ใช้ใน MongoDB

ในขั้นตอนนี้เราจะเปิดใช้งานการตรวจสอบสิทธิ์สำหรับผู้ใช้ เพื่อป้องกันไม่ให้ผู้ใช้รายอื่นที่ไม่มีสิทธิ์จะสามารถดูข้อมูลในฐานข้อมูลได้
ในเซิร์ฟเวอร์ CentOS 7 ของเรา MongoDB กำลังทำงานภายใต้ systemd พร้อมกับสคริปต์ init ในไดเร็กทอรี ‘/etc/init.d/’ เราจะแก้ไขสคริปต์นั้นเพื่อบังคับให้ mongodb ทำงานโดยใช้ตัวเลือก ‘–auth’ ไปที่ไดเร็กทอรี ‘/etc/init.d/’ และแก้ไขไฟล์ “mongod”

ในบรรทัด 15 จะพบตัวแปร “OPTION” ให้เพิ่มข้อมูลดังนี้ แล้วกดบันทึกไฟล์

ทำการรีโหลดและรีสตารท์ MongoDB ใหม่อีกครั้งด้วยคำสั่ง

ต่อไปเราจะต้องทดสอบการกำหนดค่าโดยเข้าสู่ ssh ของ Mongo และเปลี่ยนไปใช้ฐานข้อมูลของ admin แล้วลองแสดงรายละเอียด user

จะเห็นข้อผิดพลาดเกี่ยวกับการเรียกใช้คำสั่งไม่ได้รับอนุญาตในผู้ดูแลระบบฐานข้อมูล ตอนนี้เราต้องใช้คำสั่ง ‘db.auth ()’ สำหรับการพิสูจน์ตัวตน

ตอนนี้เราสามารถแสดงรายละเอียด User ที่มีสิทธิเข้าใช้งานได้

เพียงเท่านี้ MongoDB 3.2 ก็ได้รับการติดตั้งและกำหนดค่าไว้ใน CentOS 7 Server เรียบร้อยแล้ว

***ข้อมูลเพิ่มเติม MongoDB

Share this:Share on FacebookTweet about this on TwitterShare on Google+Pin on Pinterest