หน้าแรก/บทความ/ตั้งเวลาสำรองฐานข้อมูล MySQL บน Linux
กลับหน้าบทความ
Linux

ตั้งเวลาสำรองฐานข้อมูล MySQL บน Linux

วิธีสำรอง (Backup) ฐานข้อมูล MySQL บน Linux เป็นไฟล์ .gz ด้วย mysqldump และ gzip พร้อมตั้ง Crontab ให้ Backup อัตโนมัติทุกวัน และวิธี Restore กลับมา

ศิริชัย ธีรภัทรสกุล (ตั้ม)อ่าน 4 นาที24 กุมภาพันธ์ 2560
#Linux#MySQL#Backup#Crontab#mysqldump#gzip

วิธีการสำรอง (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 พัง

🚀 รับพัฒนาเว็บไซต์ & เว็บแอพพลิเคชั่น

สนใจดูตัวอย่างงานหรือสอบถามเพิ่มเติม ติดต่อได้เลยครับ โค้ดโมทีฟ (CodeMotive)