Neden Yedekleme?
Veritabanı yedeklemesi, veri kaybını önlemenin en kritik adımıdır. Sunucu arızası, hacker saldırısı veya yanlışlıkla silme durumlarında verilerinizi kurtarabilirsiniz.
1. mysqldump ile Yedekleme
# Tek veritabanı yedekleme
mysqldump -u root -p veritabani_adi > backup.sql
# Sıkıştırılmış yedek
mysqldump -u root -p veritabani_adi | gzip > backup_$(date +%Y%m%d).sql.gz
# Tüm veritabanlarını yedekle
mysqldump -u root -p --all-databases > all_backup.sql
# Belirli tabloları yedekle
mysqldump -u root -p veritabani_adi tablo1 tablo2 > partial.sql
2. Geri Yükleme
# SQL dosyasından geri yükleme
mysql -u root -p veritabani_adi < backup.sql
# Sıkıştırılmış dosyadan
gunzip < backup.sql.gz | mysql -u root -p veritabani_adi
3. PHP ile Otomatik Yedekleme
function backup_database($host, $user, $pass, $db) {
$date = date('Y-m-d_His');
$file = "/backups/{$db}_{$date}.sql.gz";
$cmd = sprintf(
'mysqldump -h%s -u%s -p%s %s | gzip > %s',
escapeshellarg($host),
escapeshellarg($user),
escapeshellarg($pass),
escapeshellarg($db),
escapeshellarg($file)
);
exec($cmd, $output, $code);
if ($code === 0) {
delete_old_backups('/backups', 7);
return $file;
}
return false;
}
4. Cron ile Otomatik Yedekleme
# Her gece saat 03:00'te otomatik yedek
0 3 * * * /usr/bin/mysqldump -u root -pSIFRE dbadi | gzip > /backups/daily_$(date +\%Y\%m\%d).sql.gz