การ Backup และ Restore ฐานข้อมูลผ่าน command line เขียนเมื่อ 2010.03.16 โดย

ในการสำรองข้อมูล (Backup) หรือการคืนค่าข้อมูล (Restore) หลายท่านน่าจะเคยทำผ่าน web application เช่น phpMyAdmin มาบ้างแล้ว แต่ด้วยข้อจำกัดของ HTTP นั้นจะมีปัญหาสำหรับฐานข้อมูลที่มีขนาดใหญ่ ดังนั้นการใช้คำสั่งผ่าน command line นั้นจึงมีประสิทธิภาพมากที่สุด

การสำรองข้อมูลใน MySQL นั้นทางผู้พัฒนาเองได้ให้เครื่องมือช่วยมาด้วยชื่อว่า mysqldump สามารถทำการสำรองข้อมูลตามต้องการได้ โดยการใช้งานสั่งได้โดยทำงานผ่าน command line โดยมีรูปแบบ

mysqldump -u [username] -p[password] [database] > [filename]


ตัวอย่างการใช้งานเช่น

mysqldump -u root -pMyPass test > backup.sql

เป็นลักษณะการสั่งให้สำรองฐานข้อมูลลงในไฟล์ ในระบบปฎิบัติการ Unix/Linux นั้นเราสามารถใช้คำสั่งบีบอัดร่วมได้เช่น

mysqldump -u root -pMyPass test | gzip > backup.sql.gz

หรือ

mysqldump -u root -pMyPass test | bzip2 > backup.sql.bz2


และยังเรายังสามารถสำรองฐานข้อมูลทั้งหมดด้วย
mysqldump -u root -pMyPass --all-databases | gzip > backup.sql.gz

และยังมีค่าอื่นเพื่อระบุรูปแบบได้ตามต้องการ เช่น
--add-drop-table เพื่อสั่งให้ drop ตารางที่มีอยู่ก่อน
--no-data เพื่อสั่งให้สำรองเฉพาะโครงสร้างของตาราง
--add-locks เพื่อสั่งให้มีการล็อคตารางและคลายล็อคตาราง

ส่วนการคืนค่าข้อมูลก็สามารถทำได้ด้วยการใช้คำสั่ง mysql มีรูปแบบการใช้งาน
mysql -u [username] -p[password] [database] < backup.sql

ตัวอย่างการใช้งานเช่น
mysql -u root -pMyPass test < backup.sql

ส่วนถ้าเป็นไฟล์บีบอัดเช่น
gunzip < backup.sql.gz | mysql -u root -pMyPass test

หรือ
bzip2 < backup.sql.bz2 | mysql -u root -pMyPass test

หวังว่าจะมีประโยชน์สำหรับทุกท่าน



คำเตือนคำเตือน เนื้อหาต่างๆ ในบทความ รวมถึงรูปภาพทั้งหมดในบทความนี้ เป็นความเห็นส่วนตัวของผู้เขียนแต่ละคน ซึ่งแต่ละคนได้ทำการลงทะเบียน และเขียนบทความลงใน Modoeye Articles นี้โดยไม่มีค่าธรรมเนียมใดๆ บทความเหล่านี้เป้าหมายเพื่อการศึกษา และความบันเทิงเท่านั้น การนำส่วนหนึ่งส่วนใดของบทความไปใช้งาน ควรทำการอ้างอิงถึงผู้เขียนและแหล่งที่มาด้วย