Kehilangan database bisa menghancurkan sebuah aplikasi. Karena itu, backup rutin wajib dilakukan begitu aplikasi Anda live. Artikel ini menjelaskan cara backup dan restore database MySQL memakai mysqldump, plus cara menjadwalkannya otomatis.
Backup Database dengan mysqldump
Perintah dasar untuk membuat backup satu database:
mysqldump -u username -p nama_database > backup.sql
Anda akan diminta memasukkan password. Hasilnya adalah file backup.sql berisi seluruh struktur dan data.
Backup dengan Kompresi (Hemat Ruang)
Untuk database besar, kompres langsung agar file lebih kecil:
mysqldump -u username -p nama_database | gzip > backup.sql.gz
Restore Database
Untuk mengembalikan backup ke database (pastikan database tujuan sudah dibuat):
mysql -u username -p nama_database < backup.sql
Jika file terkompresi:
gunzip < backup.sql.gz | mysql -u username -p nama_database
Backup Semua Database Sekaligus
mysqldump -u username -p --all-databases > full_backup.sql
Menjadwalkan Backup Otomatis dengan Cron
Buat script backup sederhana, misalnya /home/user/backup.sh:
#!/bin/bash
TANGGAL=$(date +%F)
mysqldump -u username -p'password' nama_database | gzip > /home/user/backups/db-$TANGGAL.sql.gz
Beri izin eksekusi, lalu daftarkan di crontab agar jalan tiap hari jam 2 pagi:
chmod +x /home/user/backup.sh
crontab -e
# jalankan backup tiap hari pukul 02:00
0 2 * * * /home/user/backup.sh
Tips Penting
- Simpan backup di lokasi berbeda (mis. cloud storage), bukan hanya di server yang sama.
- Hapus backup lama secara berkala agar tidak memenuhi disk.
- Uji proses restore sesekali โ backup yang tidak pernah diuji sering ternyata rusak saat dibutuhkan.
Backup di cPanel
Kalau memakai shared hosting, cPanel juga menyediakan menu Backup dan phpMyAdmin โ Export untuk backup manual tanpa command line.
Kesimpulan
Backup database MySQL dengan mysqldump itu sederhana namun sangat krusial. Kombinasikan dengan kompresi dan jadwal cron agar backup berjalan otomatis, dan selalu simpan salinan di lokasi terpisah. Untuk memahami penjadwalan cron lebih lanjut, lihat panduan kami tentang Task Scheduler di Laravel.