วันเสาร์ที่ 7 กรกฎาคม พ.ศ. 2555

การติดตั้ง MongoDB บน Window 7 แบบแจ่มๆ


       ผมเกิดสนใจ "มองโกดีบี" แบบจริงจัง ตั้งแต่เมื่อวานนี้เองครับ ^^" เพราะเห็นพูดถึงในNETกันมานานแล้วครับ แต่ไม่ได้ให้ความสนใจมากนัก และเมื่อวานได้ลองศึกษาแบบจริงๆจังๆดู เนื่องจากมันมีคุณสมบัติที่เจ๋งกว่าฐานข้อมูลทั่วๆไป เพราะมันสามารถรองรับกับจำนวนข้อมูลได้มากมายมหาศาลและทำงานได้เร็วมากๆ ซึ่งเจ้าMongoDB มันก็คือ ฐานข้อมูล ประเภท NoSQL นั่นเองครับ มันจะต่างจากฐานข้อมูลที่เราได้เรียนกันมา เช่น MySQL,SQL Server, PostgreSQL  เราจะเรียกมันว่า DBMS หรือ ฐานข้อมูลเชิงสัมพันธ์
       ส่วน MongoDB มันจะเป็นฐานข้อมูลที่ไม่มีความสัมพันธ์กัน ดังนั้น ลืมเรื่อง Relation ไปได้เลยครับ ไม่ต้องกำหนดField, ไม่ต้องกำหนดTYPEและขนาดให้กับField จะเก็บข้อมูลแบบไหนก็เก็บได้ ไม่จำเป็นต้องกำหนด INT(10),VARCHAR(100),TEXT และคำสั่ง SQL ก็ไม่สามารถใช้ร่วมกันได้ เพราะมันเป็นฐานข้อมูลคนละประเภทกันนั่นเองครับ
      เว็บไซต์ชื่อดังระดับโลกที่เราอยู่จัก เช่น facebook,tweeter,google ก็ใช้ฐานข้อมูลประเภทNoSQLในการจัดเก็บข้อมูลกันทั้งนั้น เพราะมีข้อมูลไหลเข้า/ออกมากมายมหาศาลตลอดเวลานั่นเอง

เริ่มติดตั้งกันเลยครับ
1.ดาวน์โหลด mongoDB ได้ที่เว็บไซต์ http://www.mongodb.org/downloads  Extractไฟล์ให้เรียบร้อย และผมได้เปลี่ยนชื่อโฟลเดอร์ว่า mongodb แล้วเอาไว้ในไดร์ฟ C ดังรูป

 2.จากนั้นให้สร้าง โฟลเดอร์ data และ logs ในโฟลเดอร์ mongodb ดังรูป


ต่อไป เราจะทำServiceให้กับMongoDBกันครับ เราจะให้มันAuto Startทุกครั้งที่เปิดเครื่องใหม่


1.เราจะกำหนดค่าที่ Dos Command และต้องเข้าแบบ Administrator โดยไปที่ Start->Search ว่า cmd->คลิกขวาที่ cmd.exe->Run as administrator ดังรูป


2. เข้าไปในPathที่เราเก็บเจ้า MongoDB เอาไว้ สำหรับผมจะเข้าไปที่ c:\mongodb\bin และพิมพ์คำสั่ง mongod --install --rest –master –logpath=C:\mongodb\logs\mongolog.txt ดังรูป


3.ไปที่ Start->Run พิมพ์ว่า regedit หน้าต่าง Registry Editor จะแสดงขึ้นมา ให้เข้าไปที่ HKEY_LOCAL_MACHINE -> SYSTEM->CurrentControlSet->services และคลิกที่  MongoDB และดับเบิลคลิกที่ ImagePath และพิมพ์ว่า C:\mongodb\bin\mongod --service  --rest  --master  --logpath=C:\mongodb\logs\mongolog.txt  --dbpath=C:\mongodb\data ในช่อง Value data (เราต้องระบุพาธให้ตรงกับที่เราสร้างเอาไว้นะครับ หากเราต้องการย้ายโฟลเดอร์ mongodb ไปไว้ที่อื่น ก็เข้ามาแก้ไขพาธในจุดนี้ได้เลยครับ) ดังรูป


4.เราจะเปิดการทำงานให้กับ MongoDB ที่ Component Services โดยไปที่ Start->Search คำว่า Service ->เลือก Component Services ->Service (Local)->MongoDB ดังรูป

5.Start Mongo DB โดยดับเบิลคลิกหรือคลิกขวา เลือก Start ดังรูป


ตอนนี้เราได้ติดตั้งServiceให้กับMongoDBเสร็จสมบูรณ์แล้วครับ

ต่อไปเราจะติดตั้ง Extension MongoDB ให้กับ PHP กัน เพื่อทำให้ PHP สามารถทำงานร่วมกับ MongoDB ได้ครับ

1.ก่อนอื่นเราต้องเช็ค Version PHP,Thred Safetyก่อนครับ ของผม Version 5.2.6 และ Thred Safety=enabled


2.และเข้าไปดาวน์โหลด Extension ได้ที่ http://www.php.net/manual/en/mongo.installation.php#mongo.installation.windows  และผมเลือกที่ PHP 5.2 VC6 Thread-Safe Mongo extension ดังรูป


 3.เมื่อได้ไฟล์มาแล้วให้ Extract File จะได้ไฟล์ชื่อ php_mongo.dll เอาไปไว้ที่ C:\AppServ\php5\ext


4.เปิดไฟล์ php.ini ขึ้นมาโดยไปที่ Start->All Programe->AppServ->Configuration Server->php.ini File และพิมพ์คำสั่ง extension=php_mongo.dll , Save ไฟล์ให้เรียบร้อย และRestart Apache ด้วยนะครับ


เราจะทดสอบ PHP + MongoDB กันครับ โดยพิมพ์คำสั่ง
<?php
$connect=new Mongo();//Default http://localhost:27017
$db = $connect->selectDB( "db_mymongo" );
$collection = $db->selectCollection( "tb_category" );
$insert = array( "name" => "PHP","type" => "Computer Language");
$collection->insert( $insert,true);//เพิ่มข้อมูล
$showcate = $collection->find();//แสดงข้อมูลทั้งหมด
foreach ($showcate as $id => $value) {
    echo "$id: ".$value['name'].' '.$value['type'];
}
?>

Saveไฟล์ชื่อ testmongodb.php และกดRUN จะได้ผลลัพธ์ ดังรูป


จากนั้น กลับมาดูที่โฟลเดอร์ data ที่เราได้สร้างเอาไว้เพื่อเก็บฐานข้อมูล ดังรูป



บทความต่อไปผมจะสอนวิธีใช้งานMongoDB แต่ต้องขอตัวไปศึกษาก่อนนะครับ ^^'' เพราะเพิ่มเริ่มศึกษาเมื่อวานนี้จริงๆครับ บทความนี้จะสอนแค่การติดตั้งและยกตัวอย่างง่ายๆไปก่อน หากมีปัญหาตรงไหน สามารถสอบถามผมได้ ยินดีที่จะตอบคำถาม ถ้ามีเวลาครับ ^^

2 ความคิดเห็น :

  1. อยากรู้ว่า เวลา test PHP นั้น save ลงไปที่ โฟลเดอร์ไหนอ่ะครับ ?

    ตอบลบ
    คำตอบ
    1. โฟลเดอร์ไหนก็ได้ครับ ที่รันอยู่บน localhost

      ลบ