📑 İçindekiler

    E-ticaret siteleri, mobil uygulamalar, üyelik sistemleri veya bloglar fark etmeksizin web sitenizin en değerli verileri (kullanıcı şifreleri, siparişler, ayarlar ve içerikler) MySQL veritabanında saklanır. Dosyalarınızı kaybetseniz bile kodları yeniden yazabilirsiniz, ancak veritabanınızı kaybetmek telafisi mümkün olmayan maddi ve manevi zararlara yol açar. Bu yazımızda, MySQL veritabanınızı korumak için uygulayabileceğiniz en iyi güvenlik ayarlarını ve yedekleme stratejilerini derledik.

    1. MySQL Veritabanı Güvenliği (Sıkılaştırma Önlemleri)

    Veritabanınızın yedeklenmesi kadar, dışarıdan gelebilecek saldırılara karşı korunması da kritiktir. Sızmaları engellemek için şu temel adımları uygulayın:

    Dışarıdan Erişimi Kapatın (Bind Address)

    MySQL sunucunuzun dış dünyaya açık olması büyük bir güvenlik açığıdır. Sadece localhost (sunucu içi) bağlantılara izin vermek için my.cnf veya mysqld.cnf dosyanızdaki bind-address ayarını kontrol edin:

    bind-address = 127.0.0.1

    Bu ayar sayesinde veritabanınıza sunucu dışından doğrudan bağlantı denemeleri engellenir.

    Root Kullanıcısı ile Uzaktan Bağlantıyı Engelleyin

    MySQL root kullanıcısına tam yetki verilmiştir ve genellikle kaba kuvvet (brute-force) saldırılarının hedefidir. Root kullanıcısının sadece sunucu içinden bağlanabilmesini garanti altına alın:

    ALTER USER 'root'@'%' IDENTIFIED BY 'CokGucluSifre123!';
    -- Sadece localhost erişimi için:
    RENAME USER 'root'@'%' TO 'root'@'localhost';

    🚨 Fidye Yazılımları ve Veri İhlalleri

    Son yıllarda otomatik botlar, zayıf şifrelere sahip ve dışarıya açık MySQL portlarını (3306) tarayarak verileri şifrelemekte ve fidye talep etmektedir. Güçlü şifreler ve lokal erişim sınırlaması bu riskleri önemli ölçüde azaltır.

    2. En Güvenli mysqldump Yedekleme Yöntemi

    MySQL veritabanlarını yedeklemenin en yaygın yolu mysqldump komutunu kullanmaktır. Ancak büyük veritabanlarında yedek alırken tabloların kilitlenmesini engellemek için doğru parametreleri kullanmak gerekir:

    mysqldump --single-transaction --quick --lock-tables=false -u kullanıcı_adı -p veritabanı_adı > yedek.sql
    • --single-transaction: Tabloları kilitlemeden yedek almayı sağlar. Siteniz aktifken yedek alırken işlemler duraklamaz.
    • --quick: Büyük veritabanlarında belleğin aşırı kullanımını engelleyerek verileri doğrudan dosyaya yazar.

    3. MySQL Artımlı (Incremental) Yedekleme Nedir?

    Veritabanınız 5 GB veya daha büyükse, her gün sıfırdan tam yedek (Full Backup) almak hem sunucu işlemcisini yorar hem de disk alanını hızla tüketir.

    Artımlı Yedekleme (Incremental Backup), sadece son yedekten sonra değişen veya yeni eklenen satırları yedekler. MySQL'in binary log teknolojisi kullanılarak yapılan bu yedekleme, disk alanından ve sunucu trafiğinden %95'e varan tasarruf sağlar.

    4. Yedekalma ile Güvenli ve Otomatik MySQL Yedeklemesi

    Yedeklerinizi manuel olarak alıp saklamak zahmetlidir ve insan hatasına açıktır. Yedekalma, MySQL veritabanınızı sunucunuzdan otomatik ve güvenli bir şekilde yedekler:

    • Client-Side AES-256 Şifreleme: SQL veritabanı yedeğiniz sunucudan çıkmadan önce AES-256 ile şifrelenir.
    • Restore Drill (Otomatik Doğrulama): Alınan yedeklerin bozuk olup olmadığı her hafta otomatik doğrulanır — arşiv açılabiliyor mu, içerik dolu mu ve checksum tutuyor mu kontrol edilir.

    Sık Sorulan Sorular

    MySQL veritabanı yedeği nasıl alınır?

    En yaygın yol mysqldump komutudur: `mysqldump -u kullanici -p veritabani > yedek.sql`. Şifreyi komut satırına yazmayın (işlem listesinde görünür); bunun yerine ~/.my.cnf dosyası ya da --defaults-extra-file kullanın. Küçük veritabanları için phpMyAdmin'in Dışa Aktar sekmesi de yeterlidir, ancak büyük tablolarda PHP zaman aşımına takılabilir.

    MySQL yedeği ne sıklıkla alınmalı?

    Ölçüt, kaybetmeyi göze alabileceğiniz veri süresidir (RPO). Statik bir tanıtım sitesinde haftalık yedek yeterli olabilir; her gün içerik girilen bir sitede günlük, sipariş alan bir e-ticaret sitesinde ise saatlik yedek gerekir — çünkü orada bir saatlik kayıp doğrudan sipariş kaybı demektir.

    Veritabanı yedeğinde artımlı (incremental) yedekleme kullanılabilir mi?

    Dosyalarda kullanılabilir ama veritabanı dökümünde kullanılmaz: mysqldump her çalıştığında verinin tamamını üretir; yarım bir döküm geri yüklenemez. Yedekalma bu yüzden dosya ve e-posta bileşenlerinde artımlı çalışır, veritabanını ise HER seferinde tam alır. Gerçek artımlı veritabanı kurtarması binlog tabanlı PITR ile yapılır ve ayrı bir konudur.

    Veritabanı şifremi yedekleme servisiyle paylaşmam gerekir mi?

    Gerekmez. Yedekalma'da döküm, sitenizin kendi sunucusunda çalışan PHP modülü tarafından alınır; MySQL kullanıcı adı ve şifresi sizin sunucunuzdaki yapılandırma dosyasında kalır, Yedekalma sunucusuna gönderilmez. Panel yalnızca yedeğin meta verisini (boyut, tarih, checksum) görür.

    Veritabanı Güvenliğinizi Şansa Bırakmayın!

    Yedekalma ile 5 dakikada MySQL yedekleme planınızı oluşturun, verilerinizi otomatik olarak şifreli bulut depolama alanlarında saklayın.

    Ücretsiz Denemeyi Başlat