Veritabanını seçmenin performans, lisans ve güvenlik gibi konularda yarattığı zorlukları biliyoruz. Bu seçimi kolaylaştırmak için, en popüler açık kaynaklı çözümlerden MySQL ve güçlü alternatifi MariaDB‘yi karşılaştıralım.
MySQL ve MariaDB Nedir?
MySQL Oracle tarafından geliştirilen açık kaynaklı ilişkisel veritabanı yönetim sistemidir. Web uygulamalarından yazılımlara bir çok alanda tercih edilir.
Özellikle Linux, Apache, MySQL ve PHP/Perl/Python bileşenlerinin bir araya gelerek oluşturduğu popüler uygulama setinin (LAMP) temel veritabanı olmuştur.
MariaDB, MySQL’in orijinal kurucuları tarafından geliştirilen, yüksek uyumluluğa sahip bir veritabanıdır. MySQL ile aynı kod tabanını paylaşırken, topluluk odaklı yapısı sayesinde performans ve güvenlik alanında daha hızlı yenilikler sunar.
MySQL ve MariaDB Arasındaki Temel Farklar
Lisanslama
- MySQL, Oracle’ın kontrolündedir. Topluluk sürümü GPLv2 lisanslıdır, ancak bazı gelişmiş özellikler yalnızca Enterprise sürümde sunulur.
- MariaDB, tamamen GPLv2 lisansı altındadır tümü açık kaynak olarak topluluğa sunulur.
Performans
MariaDB, varsayılan olarak MyRocks, Spider gibi depolarıyla gelir. Bu motorlar, büyük iş yüklerini bölmeyi ve sorguları aynı anda çalıştırmayı daha kolay hale getirir. Bu sayede MariaDB, büyük sistemlerde yüksek performansı ve ölçeklenmeyi ücretsiz sürümünde sunar.
MySQL de hızlıdır, ancak veritabanı bağlantılarını daha verimli yöneten “Thread Pooling” gibi bazı hızlandırıcı özellikler sadece Enterprise sürümünde bulunur.
*Özetle, MariaDB kullanıcıları, MySQL’in parayla sattığı birçok gelişmiş performans özelliğine ücretsiz olarak erişebilir.
Özellik | MySQL | MariaDB |
---|---|---|
JSON Desteği | ✅ Yerel ve ikili formatta | ✅ String tabanlı |
Sorgu Ön Bellekleme | ❌ Yok | ✅ Redis ile önbellekleme |
Replikasyon | ✅ Group Replication | ✅ Galera Cluster |
Sanal Kolon | ✅ Var | ✅ Gelişmiş |
Kullanıcı İstatistikleri | ❌ Yok | ✅ Genişletilmiş |
Sorgu Kısıtlama | ❌ Yok | ✅ Mevcut |
Şifre Doğrulama | ✅ validate_password | ✅ 3 farklı eklentiyle |
Güvenlik ve Şifreleme
MySQL: Kimlik doğrulamada varsayılan olarak daha güçlü SHA-256 kullanır. Ancak, verileri şifrelerken ikili günlükler ve bazı özel tabloları şifreleme kapsamı dışında bırakabilir.
MariaDB: Eski sistemlerle uyumluluk için farklı kimlik doğrulama yöntemleri sunar. En büyük farkı, MySQL’in şifrelemediği bu ikili günlükleri ve zamansal tabloları da şifreleyerek veri güvenliği sağlamasıdır.
Uyumluluk
İki veritabanı da birbirine büyük ölçüde uyumludur ve kolay geçiş imkanı sunar.
- MariaDB, standart SQL’i zenginleştiren bazı ifadeleri MySQL’den daha hızlı benimsemiştir.
- Örneğin,
INTERSECT
,EXCEPT
veCASCADE TRUNCATE
gibi bazı SQL komutları şu anda yalnızca MariaDB tarafından desteklenmektedir.
Hangisini Seçmelisiniz?
Eğer projeniz yüksek performans, aynı anda birçok sorgunun çalışması ve veritabanı üzerinde tam kontrol sahibi olmayı gerektiriyorsa, MariaDB sizin için ideal bir seçim olabilir.
Thread Pooling gibi tüm gelişmiş özellikleri topluluk sürümünde ücretsiz sunması MariaDB, esnek, güçlü ve uygun maliyetli bir altyapı sağlar.
Oracle tabanlı servislerinizde yüksek seviyede uyumluluk sizin için kritik önem taşıyorsa, tercih edilmesi gereken sistem MySQL’dir. Bu durumlarda MySQL versiyonları, gelişmiş güvenlik, performans optimizasyonları ve bulut servisleriyle tam uyumlu çalışma avantajı sağlayarak kurumsal standartlar ve cloud yapısıyla uyum garantisi sunar.
MySQL ile MariaDB Veritabanı İçeriği Taşıma
Her iki sistem aynı SQL temeli üzerine inşa edildiği için veri geçişi genel olarak oldukça sorunsuzdur.
Gerekli Ön Koşullar
Her iki veritabanı sunucusuna erişiminiz olmalıdır. Ayrıca, dbForge Studio’nun bilgisayarınızda kurulu olması gerekmektedir.
dbForge Studio ile MySQL ve MariaDB sunucularına bağlanalım.

Taşımak istediğiniz veritabanına sağ tıklayalım ve Yedekle ve Geri Yükle > Veritabanını Yedekle yolunu izleyelim.
Açılan sihirbazda, çıktı dosyasının adını ve kaydedileceği konumu (dizini) belirleyip, sonrasında adımları tamamlayıp Yedekleme butonuna tıklayalım.

Yeni MySQL/MariaDB sunucusuna geçtikten sonra, ilk iş olarak boş bir veritabanı oluşturalım. Daha sonra, Veritabanı Gezgini’nde, yeni oluşturduğumuz bu boş veritabanına sağ tıklayalım ve Yedekle ve Geri Yükle > Veritabanını Geri Yükle seçeneğini seçelim.
Açılan ekranda ayarları yapıp, son olarak Geri Yükle butonuna tıklayarak işlemi tamamlayalım. Unutmayalım ki, MySQL’i MariaDB’ye veya MariaDB’yi MySQL’e taşırken de bu adımları aynen takip etmemiz gerekir.

Sık Sorulan Sorular
XAMPP kullanırken hangi veritabanı kullanılır?
XAMPP varsayılan olarak MariaDB ile birlikte gelir. Ancak istenirse MySQL kurulumu yapılabilir. phpMyAdmin arayüzü üzerinden hangi veritabanının yüklü olduğu kolayca görülebilir.
phpMyAdmin ile MariaDB yönetilebilir mi?
Evet, phpMyAdmin hem MariaDB hem de MySQL için uyumlu bir web arayüzüdür. Localhost’ta veya sunucuda MariaDB kuruluyken, phpMyAdmin üzerinden sorgu yazma, tablo oluşturma, kullanıcı yönetimi gibi işlemler yapılabilir.
MariaDB RDS Snapshot Geri Yüklemesi Sonrası InnoDB Kilitlenmesi
Snapshot’tan geri döndükten sonra veritabanı crash recovery
sürecine girer. innodb_force_recovery
parametresi geçici olarak 1
veya 2
ile yapılandırılmalıdır.
[mysqld]
innodb_force_recovery=1
phpMyAdmin‘de MariaDB Hastası “Access denied for user "
Terminalden root şifresini sıfırlayabiliriz.
sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yeniSifre';
FLUSH PRIVILEGES;
config.inc.php
dosyasında kimlik doğrulama yöntemi cookie
veya config
olarak tanımlanmalı. MariaDB 10.4 sonrası unix_socket
yöntemi varsayılan olabilir, bu durumda phpMyAdmin kullanıcı hesabı oluşturulmalıdır.