หน้าแรก/บทความ/ตั้งเวลาสำรองฐานข้อมูล 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)