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.
| Konu | Aciklama |
|---|---|
| Koken | MariaDB, MySQL kod tabaninin catallanmasidir |
| Lisans (sunucu) | MariaDB Server GPLv2; MySQL Community GPLv2, ayrica ticari lisans secenegi vardir |
| Yonetisim | MariaDB'de Foundation + Corporation; MySQL Oracle tarafindan yonetilir |
| Uyumluluk | Cok sayida surumde protokol/SQL uyumu yuksek; zamanla ozellik ayrisimlari artmistir |
| Depolama motorlari | MariaDB ek motorlar sunar (Aria, MyRocks, ColumnStore, Spider, CONNECT vb.) |
| Kumeleme | MariaDB 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.
| Motor | Kullanim amaci |
|---|---|
| InnoDB | Varsayilan; ACID islemler, satir kilidi, foreign key destegi |
| Aria | MyISAM'in crash guvenligi iyilestirilmis ardili; bazi sistem tablolarinda kullanilir |
| MyISAM | Eski, islemsiz motor; okuma agirlikli basit senaryolar |
| MyRocks | LSM tabanli, yazma yogun ve disk verimliligi onemli is yukleri |
| ColumnStore | Sutun tabanli; buyuk olcekli analitik/OLAP sorgular |
| Spider | Tablolari birden cok sunucuya bolup dagitmak (sharding) icin |
| Memory | Verileri 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.
# 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 -pTemel 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.
-- 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.