MariaDB, MySQL'in kaynak kodundan turetilmis, acik kaynak ve ticari destegi bulunan iliskisel bir veritabani yonetim sistemidir (RDBMS). MySQL ile buyuk olcude uyumlu kalmayi hedeflerken, zamanla kendi ozelliklerini ve motorlarini ekleyerek ayri bir proje kimligi kazanmistir. Bu yazida MariaDB'nin ne oldugunu, nereden geldigini, mimarisini ve gercek dunyada nasil kullanildigini adim adim ele aliyoruz.

MariaDB Nedir?

MariaDB, SQL tabanli, iliskisel bir veritabani sunucusudur. Verileri satir ve sutunlardan olusan tablolarda saklar; tablolar arasindaki iliskileri anahtarlarla kurar ve ACID (Atomiklik, Tutarlilik, Izolasyon, Kaliclik) garantileri sunan islemler (transaction) uzerinden guncellenir. Sunucu bileseni GPLv2 lisansi altinda dagitilir; bu da onu ozgur ve acik kaynakli bir yazilim yapar.

MariaDB, MySQL'in bir catallanmasi (fork) olarak dogdu. Amac, MySQL'in acik kaynak ruhunu surdurmek ve tek bir sirketin kontrolunden bagimsiz, toplulukca gelistirilen bir alternatif sunmakti. Yillar icinde iki proje ayni koklerden beslense de birbirinden uzaklasti; bugun MariaDB'nin kendi depolama motorlari, SQL uzantilari ve gelistirme yol haritasi vardir.

Ilgili rehberler: Veritabani turleri rehberi · MySQL Nedir? · PostgreSQL Nedir? · Percona Server Nedir?

Kisa Tarihce: Neden Catallandi?

MySQL'i gelistiren ekibin bir bolumu, MySQL AB'nin once Sun Microsystems, ardindan Oracle bunyesine gecmesiyle projenin acik kaynak gelecegi konusunda endise duydu. MySQL'in kurucu gelistiricilerinden Michael "Monty" Widenius onculugunde, MySQL kod tabani catallanarak MariaDB baslatildi.

Ismin hikayesi de projeye dair bir ipucu verir: Widenius, MySQL'i kizi "My"nin adindan esinlenerek adlandirmisti; MariaDB ise diger kizi "Maria"nin adini tasir. Proje bugun iki ana govde tarafindan surdurulur: acik kaynak surumu gozeten MariaDB Foundation ve ticari urun ile destek sunan MariaDB Corporation.

Surum Numaralandirmasi

MariaDB'nin ilk surumleri, uyumlulugu vurgulamak icin MySQL'in surum numaralarini takip etti. Projeler ayristikca MariaDB kendi numaralandirma serisine gecti (once 10.x serisi, ardindan 11.x serisi). Bu nedenle bir MariaDB surum numarasini dogrudan ayni numarali bir MySQL surumuyle eslestirmek yaniltici olabilir; ozellik karsilastirmasi yaparken surum notlarina bakmak dogru yaklasimdir.

MySQL ile Iliskisi ve Uyumluluk

MariaDB, uzun sure MySQL icin bir yerine gecebilir alternatif (drop-in replacement) olarak konumlandi. Bircok surumde ag protokolu, istemci kutuphaneleri ve SQL soz dizimi buyuk olcude uyumlu kaldi; boylece MySQL icin yazilmis uygulamalar cogu zaman yapilandirmayi degistirmeden calisabildi. Ancak iki proje bagimsiz gelistikce farkliliklar arttigi icin, bugun gecis oncesi test yapmak sarttir.

KonuAciklama
KokenMariaDB, MySQL kod tabaninin catallanmasidir
Lisans (sunucu)MariaDB Server GPLv2; MySQL Community GPLv2, ayrica ticari lisans secenegi vardir
YonetisimMariaDB'de Foundation + Corporation; MySQL Oracle tarafindan yonetilir
UyumlulukCok sayida surumde protokol/SQL uyumu yuksek; zamanla ozellik ayrisimlari artmistir
Depolama motorlariMariaDB ek motorlar sunar (Aria, MyRocks, ColumnStore, Spider, CONNECT vb.)
KumelemeMariaDB ile Galera tabanli senkron cok-master replikasyon yaygin kullanilir

Mimari ve Depolama Motorlari

MariaDB'nin en ayirt edici yanlarindan biri takilabilir depolama motoru mimarisidir. Ayni sunucu icinde her tablo icin farkli bir depolama motoru secebilir; boylece is yukune gore islemsel, analitik veya dagitik davranis elde edebilirsiniz. Varsayilan motor, ACID islem ve satir kilidi sunan InnoDB'dir.

MotorKullanim amaci
InnoDBVarsayilan; ACID islemler, satir kilidi, foreign key destegi
AriaMyISAM'in crash guvenligi iyilestirilmis ardili; bazi sistem tablolarinda kullanilir
MyISAMEski, islemsiz motor; okuma agirlikli basit senaryolar
MyRocksLSM tabanli, yazma yogun ve disk verimliligi onemli is yukleri
ColumnStoreSutun tabanli; buyuk olcekli analitik/OLAP sorgular
SpiderTablolari birden cok sunucuya bolup dagitmak (sharding) icin
MemoryVerileri RAM'de tutar; gecici ve cok hizli erisim gereken tablolar

Ekosistem ve Yardimci Araclar

MariaDB yalnizca bir veritabani sunucusu degil, cevresindeki araclarla birlikte bir ekosistemdir. Uygulama gelistirirken ve sistemi isletirken siklikla su bilesenlerle karsilasirsiniz:

  • mariadb / mysql komut satiri istemcisi: sorgu calistirma ve yonetim icin
  • MaxScale: baglanti yonlendirme, yuk dengeleme ve yuksek erisilebilirlik saglayan veritabani proxy'si
  • ColumnStore: sutun tabanli analitik is yukleri icin ayri motor/dagitim
  • Galera: senkron cok-master kumeleme katmani
  • Connector kutuphaneleri: C, Java (JDBC), Python, Node.js ve diger diller icin surucü/baglayicilar
  • mariadb-dump / yedekleme araclari: mantiksal ve fiziksel yedek alma

Bu araclarin cogu MySQL ekosistemiyle de calisabilir; ancak surum uyumuna ve onerilen surucü versiyonlarina dikkat etmek gerekir. Ozellikle uzun sureli calisacak uretim sistemlerinde, kullandiginiz istemci kutuphanesinin hedef sunucu surumuyle test edilmis olmasi onemlidir.

One Cikan Ozellikler

MariaDB, modern SQL standardinin bircok bilesenini ve isletim kolayligi saglayan araclari icerir. Bu ozellikler, basit CRUD islemlerinin otesinde analitik sorgular, veri gecmisi takibi ve olceklenme gibi ihtiyaclari da karsilamaya yoneliktir. Baslica ozellikler:

  • Pencere fonksiyonlari (window functions) ve ortak tablo ifadeleri (CTE) ile karmasik analitik sorgular
  • JSON islevleriyle yari yapisal veriyle calisma
  • Sistem-surumlu (temporal) tablolar: kayitlarin gecmis hallerini otomatik saklama
  • Sequence nesneleri ile esnek sayac/anahtar uretimi
  • GTID tabanli replikasyon ile daha guvenilir yuksek erisilebilirlik
  • Cesitli kimlik dogrulama ve sifreleme eklentileri, veri-durgun (at-rest) sifreleme
  • MaxScale veritabani proxy'si ile yuk dengeleme, yonlendirme ve yuksek erisilebilirlik

Kurulum ve Ilk Baglanti

MariaDB, Linux dagitimlarinin depolarinda, resmi paketlerde ve konteyner imajlarinda bulunur. Asagida tipik bir Debian/Ubuntu kurulumu ve komut satiri istemcisiyle ilk baglanti ornegi yer aliyor. Istemci komutu hem mariadb hem de gelenekten gelen mysql adiyla cagrilabilir.

bash
# Debian / Ubuntu deposundan kurulum
sudo apt update
sudo apt install mariadb-server mariadb-client

# Servisi baslat ve acilista etkinlestir
sudo systemctl enable --now mariadb

# Guvenlik sihirbazi (root parolasi, anonim kullanicilar vb.)
sudo mariadb-secure-installation

# Yerel baglanti
sudo mariadb -u root -p

Temel SQL Kullanimi

Asagidaki ornek; bir veritabani ve tablo olusturmayi, veri eklemeyi, sinirli yetkili bir kullanici tanimlamayi ve basit bir analitik sorguyu gosterir. Soz dizimi MySQL'e asina olanlara tanidik gelecektir.

sql
-- Veritabani ve tablo
CREATE DATABASE haber_portali
  CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

USE haber_portali;

CREATE TABLE makaleler (
  id            BIGINT AUTO_INCREMENT PRIMARY KEY,
  baslik        VARCHAR(200) NOT NULL,
  yayin_tarihi  DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  goruntulenme  INT NOT NULL DEFAULT 0
) ENGINE=InnoDB;

-- Veri ekleme
INSERT INTO makaleler (baslik, goruntulenme) VALUES
  ('MariaDB Nedir?', 1200),
  ('Veritabani Turleri', 800);

-- Uygulama icin sinirli yetkili kullanici
CREATE USER 'app'@'%' IDENTIFIED BY 'guclu-parola';
GRANT SELECT, INSERT, UPDATE, DELETE ON haber_portali.* TO 'app'@'%';
FLUSH PRIVILEGES;

-- Pencere fonksiyonu ile siralama
SELECT baslik, goruntulenme,
       RANK() OVER (ORDER BY goruntulenme DESC) AS sira
FROM makaleler;

Yuksek Erisilebilirlik: Replikasyon ve Galera

MariaDB, tek sunucunun otesine gecmek icin birkac yol sunar. Klasik asenkron/yari-senkron replikasyon ile bir birincil (primary) sunucudaki degisiklikler bir veya daha fazla ikincil (replica) sunucuya aktarilir; bu, okuma yukunu dagitmak ve yedek almak icin yaygindir. GTID (Global Transaction ID) tabanli replikasyon, kopyalar arasinda gecisi ve tutarliligi kolaylastirir.

Daha yuksek yazma erisilebilirligi icin Galera Cluster kullanilir. Galera, senkron ve sanal olarak cok-master (multi-master) bir replikasyon saglar: bir islem, kumedeki dugumlerde sertifikasyondan gectikten sonra onaylanir. Bir dugum dustugunde digerleri hizmet vermeye devam eder. Onunde MaxScale gibi bir proxy ile okuma/yazma yonlendirmesi ve otomatik yuk dengeleme eklenebilir.

Guvenlik

MariaDB, kurumsal ortamlar icin gerekli guvenlik denetimlerini destekler. Onemli basliklar:

  • En az yetki ilkesi: her uygulama icin ayri kullanici ve yalnizca gereken izinler (GRANT)
  • Aktarim guvenligi: istemci-sunucu trafigi icin TLS/SSL
  • Veri-durgun sifreleme: tablo alanlari ve gunluk dosyalari icin at-rest sifreleme secenekleri
  • Kimlik dogrulama eklentileri: parola politikalari ve harici dogrulama yontemleri
  • Rol tabanli yetkilendirme (roles) ile izin yonetimini sadelestirme
  • Denetim gunlugu (audit) eklentisiyle erisim ve degisiklik izleme

Ne Zaman MariaDB Secmeli?

MariaDB, MySQL ekosistemine asina ekipler icin dogal bir tercihtir. Tipik senaryolar:

  • MySQL tabanli mevcut uygulamalar icin acik kaynak, toplulukca gelistirilen bir alternatif arayanlar
  • Web uygulamalari ve icerik/haber yonetim sistemleri gibi OLTP is yukleri
  • Galera ile yuksek erisilebilirlik isteyen orta olcekli servisler
  • Ayni sistemde ColumnStore ile hafif analitik veya MyRocks ile yazma verimliligi arayan ekipler

Buna karsilik cok ozel is yuklerinde diger sistemleri de degerlendirmek mantiklidir. Genis eklenti ekosistemi ve gelismis metin/cografi ozellikler icin PostgreSQL, Oracle uyumlulugu icin MySQL'in ticari surumu veya baska cozumler daha uygun olabilir. Karsilastirmali bir bakis icin veritabani turleri rehberimize goz atabilirsiniz.

Lisans ve Yonetisim

MariaDB Server, GPLv2 kapsaminda ozgur/acik kaynak yazilim olarak dagitilir; kaynak kodu herkese aciktir ve GPL kosullari altinda kullanilabilir. Istemci kutuphaneleri ve bazi araclar farkli acik kaynak lisanslara sahip olabilir (or. baglayici kutuphaneler icin LGPL). Ticari destek, danismanlik ve bazi urunler MariaDB Corporation tarafindan saglanir; acik kaynak projenin yonetisimini ise MariaDB Foundation ustlenir.

Haber Siteleri Icin Kisa Notlar

Yuksek trafikli haber ve icerik siteleri icin veritabani katmani; okuma performansi, yedekleme, yuksek erisilebilirlik ve karakter kodlamasi (utf8mb4 ile tam Unicode ve emoji destegi) acisindan dogru kurgulanmalidir. MariaDB'nin replikasyon ve Galera secenekleri, artan yuk altinda olceklenmeye ve kesintisiz yayina yardimci olur. Uygun indeksleme, sorgu onbellekleme stratejisi ve duzenli yedek testleri, sahada en cok fark yaratan alistirmalardir.