ผู้เขียน หัวข้อ: การ replication mysql โดยใช้ phpMyAdmin (บนwindows)  (อ่าน 6620 ครั้ง)

ออฟไลน์ ผู้ดูแลระบบ

  • Administrator
  • Jr. Member
  • *****
  • กระทู้: 64
  • +0/-0
    • ดูรายละเอียด
การ replication mysql โดยใช้ phpMyAdmin (บนwindows)
« เมื่อ: พฤศจิกายน 21, 2014, 08:52:48 am »
ที่ท่านต้องเตรียมคือ
คอมพิวเตอร์ 2 เครื่องที่เป็นระบบปฏิบัติการ windows ที่ลง apache+php5.2+mysql+phpmyadmin เวอร์ชั่น 3.5.8 (ถามว่า php กับ phpmyadmin เวอร์ชั่นอื่นได้ไหม คำตอบคือได้ แต่ต้องสูงกว่านี้ เพราะจะมีเมนูสำหรับการทำ replication และ php ต้องรองรับ phpmyadmin เช่น ถ้าใช้ phpmyadmin เวอร์ชั่น 4.2.x ก็ต้องใช้ php 5.3 เป็นต้น)

- ฐานข้อมูล ที่จะทำการ replicate ทั้งสองเครื่องจะต้องเหมือนกัน (ท่านจะทำการ dump หรือ copy มาก็ได้ในที่นี้จะไม่พูดรายละเอียด) และขณะที่ทำห้ามมีการกระทำใดๆกับฐานข้อมูล
- เราให้เครื่อง 1 เป็น master และอีกเครื่องเป็น slave

ไปที่เครื่อง master (กำหนดเอง)  login เข้า phpmyadmin เพื่อสร้างฐานข้อมูลสำหรับทดสอบครั้งนี้ ชื่อว่า test_replicate



กด create

จากนั้นเลือกไปที่ฐานข้อมูล test_replicate และสร้าง table ชื่อ test ประกอบด้วย 2 column  คือ ID และ name
และแทรกข้อมูลสำหรับทดลองไป 2 record



คลิกที่เลือกฐานข้อมูล และเลือกเมนู Export เลือก Sql และบันทึกไว้



ตอนนี้เราได้ file นามสกุล .sql มาแล้ว


สลับมาที่เครื่อง slave

สร้างฐานข้อมูลชื่อเดียวกันคือ  test_replicate และทำการนำเข้าข้อมูลโดยการใช้เมนู import

จะได้ข้อมูล ฐานข้อมูล test_replicate ตาราง test ที่เหมือนกันแล้ว

สลับมาที่เครื่อง master

คลิกที่ home เลือกเมนู Replication จะได้หน้าตาดังรูป
เลือก configure




เราเลือกที่ เมนู Ignore all databases; Replicate และคลิกเลือกที่ฐานข้อมูลที่เราต้องการทำการ replicate นั่นคือ  test_replicate นั่นเอง
ถ้าจะเอาทั้งหมดให้เลือกเมนู Replicate all databases; Ignore:และไม่ต้องเลือกฐานข้อมูลใดๆในช่องด้านล่าง ถ้าเลือกหมายความว่าไม่ต้องการ replicate ฐานข้อมูลที่เลือกนั้นๆ
แต่อย่าลืมว่าถ้าจะเอาทั้งหมดโดยเลือกเมนู Replicate all databases; นั้นท่านจะต้องแน่ใจว่าทำการ dump ข้อมูลทั้งหมดมาเหมือนกันทุกประการแล้ว

สังเกตุว่า source code บรรทัดล่างๆจะเปลี่ยนไปตามที่เราเลือก

copy source code ด้านล่าง(ในวงกลมสีแดง)
แล้วให้ท่านไปหา file ชื่อ my.ini (ถ้าเป็น linux ใช้ my.cnf) ของ mysql แล้ววางในส่วนล่างของ [mysqld] บันทึกและทำการ restart mysql service




รีเฟรชหน้า phpmyadmin เข้าเมนู replicateion จะมีหน้าจอตามรูป



เลือก menu Add slave replication user

ใส่ชื่อ user สำหรับการ replicate เลือกเครื่่องที่ต้องการให้เป็น slave ถ้าระบุเจาะจงให้ใส่ ip แต่ถ้าต้องการให้ทุกเครื่องสามารถเป็น slave ได้ ให้เลือก Any host



ใส่ password ทั้งสองช่องและกด Go
จะได้หน้าจอดังนี้

กด Go
ตอนนี้เราได้กำหนด user สำหรับ replicate เรียบร้อยแล้ว

ไปที่เครื่อง slave

เลือก เมนู Reaplication
copy source code ที่เขียนว่า server-id=xxxxxxxx แล้วนำไปวางล่างสุดของ file my.ini บันทึกและทำการ restart service ของ mysql (กระบวนการเหมือนเครื่อง master แต่ตอนนี้เราอยู่ที่เครื่อง Slave นะครับ)

ใส่ username และ password ที่เราตั้งไว้ในเครื่อง master ก่อนหน้านี้
ส่วน host ให้ใส่ ip หรือ hostname ของเครื่อง master
port ถ้าเราไม่เปลี่ยน port ของ mysql ก็ให้ใช้ค่าเดิมที่ให้มา คือ 3306



กด Go

ถ้าสำเร็จก็จะปรากฏหน้าจอตามรูป ถ้าไม่สำเร็จให้กลับไปทำตั้งแต่หัวข้อสีแดงล่าสุด



คลิกที่เมนู Replication ซ้ำอีกรอบก็จะปรากฏหน้าจอต่อไปนี้




คลิก Control slave เลือก  Full Start
ถ้าไม่มีอะไรเปลี่ยนไป ภายในเวลาประมาณ 5 วินาทีให้ทำซ้ำอีกที

ถ้าสำเร็จกรอบสีแดงที่มีข้อความว่า 'Slave Sql Thread not running!" กับ "Slave IO Thread not running!" จะหายไปทั้งสองอัน ถ้ายังไม่หายไปทั้งสองอันเหลืออันใดอันหนึ่งหรือทั้งสองให้ทำการกด Full Start ซ้ำอีกครั้งจนหายหมด

เมื่อสำเร็จแล้วคลิกที่ See slave status table
จะปรากฏหน้าจอดังนี้


หากทุกอย่างไม่มีอะไรผิดพลาด จะปรากฏข้อความตรงช่อง  Slave_IO_State    ว่า  "Waiting for master to send event"

เป็นอันว่าเสร็จสิ้นกระบวนการ
ีทีนี้ก็ลองทดสอบด้วยการ เพิ่ม ลบ แก้ไข ข้อมูลใน ตารางtest ของเครื่อง master ดูนะครับ เครื่อง slave ก็จะถูก update ให้เหมือนกันทุกประการกับเครื่อง master
หรือจะลองเพิ่ม ตาราง ใน database ที่ชื่อ test_replicate ดูก็ได้ครับว่าผลจะเป็นอย่างไร
หรือจะลองเพิ่ม ใน database อื่นๆดูว่าเป็นอย่างไรบ้าง(แต่ว่าจะไม่มีการupdateตามในเครื่อง slave เนื่องจากตอนเราทำเราให้มัน replicate เฉพาะ ฐานข้อมูลเดียวคือ test_replicate)


หวังว่าคงเป็นแนวทางการสำรองข้อมูลข้ามเครื่อง หรือที่เรียกว่า Replicate บนระบบปฏิบัติการ windows ได้ไม่มากก็น้อยนะครับ
ท้ายสุดผมได้แนบ phpmyadmin version 3 มาท้ายกระทู้นี้นะครับ download ไปลองทำได้จะได้หน้าตาเหมือนกับในเว็บนี้

« แก้ไขครั้งสุดท้าย: พฤศจิกายน 24, 2014, 07:21:19 pm โดย ผู้ดูแลระบบ »