วิธีการสำรอง (Backup) ฐานข้อมูล MySQL นั้นมีหลายแบบ อีกวิธีหนึ่งที่ไม่ยุ่งยากมากนักคือสำรองเป็นไฟล์ .gz บีบอัดไว้ใน Linux Server ของตัวเอง โดยตั้งชื่อไฟล์ตามวันที่สำรอง
ข้อมูลตัวอย่าง
- Host:
localhost - Database:
webdb - Username:
root - Password:
mypassword - Backup path:
/my_backup/db/(สร้าง folder เตรียมไว้ก่อน)
คำสั่ง Backup
mysqldump -uroot -hlocalhost -pmypassword webdb | gzip > /my_backup/db/backup_`date +\%y\%m\%d`.sql.gz
คำสั่ง Restore
สมมติ backup file ชื่อ backup_170930.sql.gz:
gunzip < /my_backup/db/backup_170930.sql.gz | mysql -uroot -hlocalhost -pmypassword webdb
ตั้ง Crontab ให้ Backup อัตโนมัติทุกวันเวลา 02:30
crontab -e
เพิ่มบรรทัดนี้:
30 2 * * * /usr/local/bin/mysqldump -uroot -hlocalhost -pmypassword webdb | gzip > /my_backup/db/backup_`date +\%y\%m\%d`.sql.gz
ใน Crontab ต้องระบุ path เต็มของ
mysqldumpเสมอ เพราะบาง Server อาจรัน command ใน Crontab ไม่ได้หากไม่ระบุ path
Path ที่พบบ่อย:
/usr/local/bin/mysqldump
/usr/local/mysql/bin/mysqldump
/usr/mysql/bin/mysqldump
/usr/bin/mysqldump
แนะนำให้ Backup ไว้นอก Server ด้วย เผื่อเกิดเหตุการณ์ร้ายแรงเช่น HDD พัง