How to Install MongoDB to Mac OS X with MacPorts

สวัสดีครับ ห่างหายกันมานานกับการเขียน blog ครั้งนี้เห็นทีว่าหากไม่เขียนบทความนี้เก็บไว้ คงได้ลืมกันเป็นแน่แท้ และหากว่าบทความนี้มีประโยชน์กับเพื่อนๆคนใดก็ยินดีเป็นอย่างยิ่งครับ :)

เรื่องก็มีอยู่ว่า ผมกำลังศึกษาเกี่ยวกับ database ตัวหนึ่งชื่อ MongoDB ซึ่งเป็น database ประเภท document-oriented database ครับ และเป็น NoSQL ด้วย ประโยชน์ของมันจะเอาไว้เก็บข้อมูลแบบ JSON ซึ่งสามารถค้นหาได้เร็วมาก ยืดหยุ่น เรียบง่าย เอาไว้ทำพวกการ search ก็ดีนะครับ ช่วยได้เยอะเลย

ผมไม่ได้จะมาพูดถึงประโยชน์ (ออกทะเลไปไกลเลย) จะมาพูดถึงวิธีการ install ลงใน OS X ซึ่งเป็นของเครื่อง Mac ในกรณีนี้ผมต้องการ install เพื่อเอาไว้ test ก่อนขึ้น server จริงครับ

ก่อนอื่นเราต้องลง package ตัวนึงก่อนเพื่อสามารถ download MongoDB มาได้ เพราะว่าตัวของ Mac เองนั้นจะไม่รู้จัก package MongoDB ซึ่งมีแนะนำอยู่ 2 ตัว นั่นก็คือ MacPorts และ ​Homebrew ผมเลือกใช้ MacPorts ครับ เพราะว่า… อ่านเว็บแล้วเค้าโม้ไว้ดีเชียว ฮ่าๆ

เริ่มกันด้วยวิธีการลง MacPorts ใน OS X ก่อนครับ วิธีการ install Macports มีหลายวิธีครับ ผมเลือกวิธี install ด้วย .pkg
1. เครื่อง Mac ของคุณต้องทำการ install Xcode ก่อนครับ เข้า App Store ไปโหลดมาได้เลยครับ

2.  ต้องโหลด Command Line Tools ด้วย Xcode ด้วยครับ โดยการเปิด Xcode ขึ้นมา แล้วไปที่ Xcode->Preferences… แล้วโหลดมาตามภาพเลยครับ

3. install package ตาม version ของ Mac ครับ เข้าไป download ได้ที่ link นี้ครับ Moutain Lion, Lion, Snow Leopard และ Leopard จากนั้นก็ดับเบิ้ลคลิกเพื่อ install ตามปกติ
4. จากนั้นเปิด Terminal ขึ้นมา แล้วพิมพ์คำสั่งนี้ลงไป

$ sudo port -v selfupdate

5. จากนั้นให้เปิด Mongodb server ขึ้นมาด้วยการพิมพ์คำสั่งนี้ลงไปใน Terminal

$ mongod

และพิมพ์คำสั่งนี้ต่อไปเพื่อเข้าใช้งาน MongoDB

$ mongo

บางคนอาจจะพบว่าไม่สามารถรัน server ขึ้นมาได้ และมี error message ให้เห็นตอนที่พิมพ์ mongo ขึ้นมาว่า

$ mongo
MongoDB shell version: 2.0.1
connecting to: test
Sun Nov 06 18:48:42 Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84
exception: connect failed

นั่นเป็นเพราะว่า default path ของ MongoDB คือ /data/db ครับ ให้เราสร้าง directory นี้ขึ้นมาใหม่เลย และกำหนดสิทธิ์ให้สามารถเข้าถึงได้ด้วยครับ โดยการพิมพ์คำสั่งนี้ลงไป

$ sudo mkdir -p /data/db/
$ sudo chown $USER /data/db

ตอนนี้เราได้สร้างโฟลเดอร์ขึ้นมาใหม่แล้ว พร้อมให้สิทธิ์เรียบร้อยครับ

6. กลับไปลองข้อ 5 อีกครั้งด้วยการพิมพ์

$ mongod

จะพบว่ามีข้อความขึ้นมาเยอะแยะเลย โดยที่บรรทัดสุดท้ายมีการบอกว่า “waiting for connections on port 27017

ตอนนี้แปลว่าเราได้ start MongoDB server ขึ้นมาแล้วครับ ต่อไปให้เราเปิด Terminal ขึ้นมาอีกหน้าจอนึง เพื่อทดลองใช้งานจริงๆซักกะทีครับ พิมพ์ตามนี้เลย และลองดูภาพตามนะครับ จะเห็นว่าเราใช้งาน MongoDB ในเครื่อง Mac ของเราได้แล้วววว

$ mongo

หวังว่าทุกท่านคงจะพบผลลัพธ์เดียวกันกับผมนะครับ ถ้ามีปัญหาอะไร หรือทำแล้วได้ผลลัพธ์ยังไงให้พิมพ์บอกกันด้วยนะครับ เผื่อจะได้ช่วยเหลือกันต่อ

คาดหวังเป็นอย่างยิ่งว่าบทความนี้จะเป็นประโยชน์กับทุกคนนะครับ