0062 | มา Backup MySQL Database ด้วย mysqldump กัน

เมื่อวาน ต้องย้ายเว็บให้ลูกค้า ไปอยู่กับผู้ให้บริการอีกราย ตอนแรก ก็คิดว่ามันคงไม่ยุ่งยากอะไรมาก ก็แค่สั่ง backup ใน Directadmin แล้วก็ไป restore ที่โฮสใหม่? แต่มันไม่อย่างนั้นซิครับ เพราะว่าในไฟล์ backup ขนาดของ DB มีแค่ 300 MB กว่าๆเอง แทนที่จะเป็น 800 MB (เว็บใหญ่ใช่เล่นเลย) คราวนี้ก็งานเข้าแล้วซิครับ ก็เลยต้องมานั่งหาวิธีใหม่ ว่าจะทำยังไงดี ถ้าจะทำผ่าน phpmyadmin ก็ลืมไปได้เลย timeout ไปซะตั้งแต่ 50 MB แล้วมั้ง คิดไป คิดมา ทำไมไม่ใช้ของใกล้ตัวละ ที่มันมีมาให้กับ MySQL อยู่แล้ว นั้นก็คือ mysqldump? ไม่รอช้า เข้า ssh โดยด่วน

6-7-2552 20-26-27

mysqldump -u ชื่อผู้ใช้ -p ชื่อฐานข้อมูล > ชื่อไฟล์.sql


หากต้องการ backup ออกมาเฉพาะตาราง ก็ให้เติมชื่อตารางต่อท้ายไปนิดนึงครับ

mysqldump -u ชื่อผู้ใช้ -p ชื่อฐานข้อมูล ชื่อตาราง > ชื่อไฟล์.sql

เมื่อกด enter ไปแ้ล้ว มันจะถาม password ก็ให้เราใส่รหัสผ่านของฐานข้อมูลนั้นลงไปครับ

6-7-2552 20-27-57

จากในรูป เราก็ได้ไฟล์ backup ที่ชื่อว่า? igolf_blog.sql ออกมาแล้วครับ

หลังจากนั้นผมก็ทำการ ftp จากเครื่อง server ไปเลยโดยผ่าน command line ไม่กี่บรรทัด ครับ เพราะจะให้โหลดมาลงที่เครื่องก่อน แล้วอัพโหลดไปอีกที ไม่ไหวแน่ๆ

ftp 123.456.789.0  กด enter
ใส่ user  กด enter
ใส่ password    กด enter
cd /domain/xxx.com/......    เข้าไปยัง path ที่ต้องการ
put igolf_blog.sql        อย่าลืมเปลี่ยนชื่อไฟล์ด้วยนะ

แค่นี้แหละครับ
สำหรับการ restore กลับเข้าไป ก็ง่ายมากถ้าเราเข้าใช้ command ได้? ก็แค่เปลี่ยนเครื่องหมาย > เป็น <แต่ปัญหาของผมคือ ไม่สามารถเข้า ssh เครื่องโฮส ที่ลูกค้าย้ายไปใหม่ได้นะซิครับ เลยหาวิธีอยู่อีกพักนึง ในที่สุดก็คิดออก คือใช้ Bigdump ครับ ส่วนวิธีใช้ ขอติดเอาไว้ก่อนนะครับ จะมาเขียนให้ในบทความหน้า