วิธี Dump mySQL จาก Remote Database

Dump mySQL db from Remote Database to Local Database

ในกรณีที่เราต้องการ Backup Database จาก Remote Database หรือทำการอัพเดทฐานข้อมูลจากฐานข้อมูลหลักมาเก็บไว้ที่ Local Server บทความนี้อาจจะช่วยแก้ปัญหาและลดเวลาการทำงานได้ไม่มากก็น้อย
เรื่องของเรื่องก็คือผมได้รับ Assign งานเกี่ยวกับการ Sync-up ฐานข้อมูล Requirement คือ การอัพเดทข้อมูลจากฐานข้อมูลหลักมาที่ Local Database เพราะฐานข้อมูลหลัก หรือ Remote Database นั้นจะช้าถ้าเรา Connect เข้าไปใช้งานโดยตรง หรือเพื่อนๆอยากจะเอาไปใช้ในกรณีที่ต้องการ Backup ฐานข้อมูลก็ได้นะ

ขั้นตอนคือเมื่อเรา Remote เข้าไปที่ Local Database แล้วลอง Connect ไปที่สถานีปลายทางดูก่อนว่าสามารถ Connect ได้ไหม ผมใช้ Command

mysql --host=localhost --user=myname --password=password mydb

ดูบทความภาษาอังกฤษเกี่ยวกับการเชื่อมต่อฐานข้อมูลได้ >>ที่นี่<<

ถ้าไม่มีอะไรผิดพลาด สามารถเชื่อต่อได้แล้วละก็ สามารถทำการ Dump ข้อมูลมาเก็บไว้ที่ Local Database ของเราได้เลย ด้วยคำสั่งนี้เลย

mysqldump
--host=<remote-host>
--user=<remote-user>
--password=<remote-pass>
--single-transaction
--ignore-table=<ignore-db.table> <remote-db-name>
| mysql
--host=localhost
--user=<local-user>
--password=<local-pass> <local-db-name>--password=

บทความที่มาของคำสั่งนี้ ผมแก้ไขนิดหน่อย เพิ่ม –ignore-table เข้าไป กรณีที่เป็น view table มันจะ error ทำการ dump ไม่ได้ เลยเพิ่มตัวอย่างคำสั่งสำหรับ ignore ไว้ให้ ถ้าเราไม่ต้องการ ignore ตารางไหนเลย ก็ลบคำสั่งนี้ออกไปได้

ดูบทความที่ผมดูตัวอย่างเขามาได้ >>ที่นี่<<