MariaDB öğrenmek için en verimli yol, önce kendi sunucunuza kurup istemciyle bağlanmak, ardından temel SQL ifadelerini, sonra orta düzey sorguları, programlanabilir nesneleri, güvenliği, yedeklemeyi ve performansı sırayla çalışmaktır. Bu rehber, MariaDB Server'ın resmî belgelerine dayanan 50 yazılık serimizin giriş kapısıdır: aşağıda bütün yazıları sekiz öğrenme yoluna ayırdık ve her birinin neyi anlattığını bir iki cümleyle özetledik.
Serideki yazılar MariaDB 12.3 LTS dönemine ait yerel resmî belge kopyasına göre hazırlandı. Her yazı yalnızca kendi konusunu derinlemesine işler ve kalan ayrıntılar için kardeş yazılara bağlantı verir. MariaDB'nin ne olduğunu, MySQL'den nasıl ayrıldığını ve genel mimarisini merak ediyorsanız MariaDB nedir yazısıyla, SQL diline tamamen yeniyseniz SQL nedir yazısıyla başlamanızı öneririz.
Bu seriyi nasıl çalışmalısınız?

Okumak tek başına yetmez; her yazıdaki örnekleri kendi test sunucunuzda denemeniz, öğrendiklerinizi kalıcı kılmanın en iyi yoludur. Üretim verisinin bulunmadığı küçük bir sanal sunucu ya da yerel bir sanal makine bunun için yeterlidir. Önerdiğimiz çalışma düzeni şöyle:
- Önce ortamı kurun: Birinci öğrenme yolundaki yazılarla MariaDB'yi kurun, güvenli hale getirin ve
mariadbistemcisine alışın. İstemciyi rahat kullanmadan SQL çalışmak zordur. - Temel SQL'i sırayla çalışın: Tablo oluşturma, veri tipleri, veri ekleme ve sorgulama, birleştirme ve gruplama yazıları birbirinin üzerine kuruludur.
- Her yazıdaki "Sık yapılan hatalar" bölümünü atlamayın: Bu bölümler belgelerin uyardığı tuzakları toplar ve gerçek hayatta en çok zaman kaybettiren noktalardır.
- Yönetim konularına üretimden önce geçin: Kullanıcılar, yedekleme ve günlükler, bir uygulamayı canlıya almadan önce bilmeniz gereken konulardır.
- Performansı en sona bırakın: Dizinler, EXPLAIN ve InnoDB ayarları ancak sorgularınızın ve verinizin nasıl çalıştığını bildiğinizde anlam kazanır.
Bir konuda takıldığınızda yazının sonundaki kaynak notunda listelenen resmî belge sayfalarına bakın. Belgeler sürekli güncellenir; özellikle varsayılan değerler ve sürüm notları değişebilir.
Resmî belgeler nasıl düzenlenmiş?
MariaDB Server belgeleri sekiz ana bölümden oluşur. Hangi sorunun hangi bölümde cevaplandığını bilmek, aradığınızı bulma sürenizi ciddi biçimde kısaltır:
| Bölüm | İçerik | Ne zaman bakılır? |
|---|---|---|
| Quickstart Guides | Kurulum, bağlanma, veri ekleme, sorgulama, JOIN, dizin, yedek ve geri yükleme için kısa rehberler | Bir konuya ilk kez başlarken |
| Server Usage | Depolama motorları, görünümler, saklı yordamlar, tetikleyiciler, bölümleme, yedekleme | Bir özelliği kullanmayı öğrenirken |
| Server Management | Kurulum ve yükseltme, yapılandırma, başlatma ve durdurma, günlükler, değişkenler | Sunucuyu yönetirken |
| Security | Kullanıcı yönetimi, kimlik doğrulama, şifreleme, güvenlik önlemleri | Erişimi ve verileri korurken |
| Architecture | Bileşenler, kısıtlamalar ve topolojiler | Mimari karar verirken |
| Clients and Utilities | mariadb, mariadb-dump, mariadb-admin gibi araçlar | Bir aracın seçeneklerini ararken |
| HA and Performance | Optimizasyon, sistem değişkenleri, replikasyon | Ölçekleme ve hız sorunlarında |
| Reference | SQL ifadeleri, fonksiyonlar, veri tipleri, hata kodları, eklentiler | Kesin sözdizimi ve davranış için |
Pratik bir kural: "Nasıl yaparım?" sorusu için önce Quickstart Guides bölümüne, "Tam olarak nasıl yazılır ve ne döndürür?" sorusu için Reference bölümüne bakın. Reference bölümündeki SQL ifadesi sayfaları genellikle bir sözdizimi bloğu, açıklama ve örneklerden oluşur; hata kodu sayfaları ise e1045 gibi numaralarla ayrı sayfalar halindedir. Sistem değişkenlerinin varsayılan değeri, dinamik olup olmadığı ve geçerli aralığı tek bir uzun sayfada, Server System Variables sayfasında listelenir.
LTS, kısa süreli ve rolling sürümler
MariaDB'nin sürüm modeli, hangi sürümü kuracağınızı doğrudan etkiler. Belgelerin indirme sayfasına göre beş yıl bakım alan uzun süreli (long-term) sürümler, bir yıl bakım alan kısa süreli sürümler ve rolling sürümler vardır. Yükseltme sayfaları bu modeli örneklerle anlatır: 11.3 bir rolling sürüm, 11.4 ise uzun süreli bakım sürümüydü; 11.4.2'den sonra bir sonraki rolling sürüme geçmek ya da uzun süreli seride kalmak mümkündü. Belgelerdeki yükseltme sayfası 11.8'i bir önceki uzun süreli bakım sürümü olarak tanımlar ve 12.3'e geçişi ele alır.
Yerel belge kopyasında güncel LTS sürümü MariaDB 12.3'tür; 11.8, 11.4 ve 10.11 daha eski LTS sürümleridir. 13.x serisi ise rolling ve önizleme niteliğindedir. MariaDB'nin depo kurulum betiği de bu tabloyu yansıtır: desteklenen Community sürümleri arasında mariadb-12.3, mariadb-12.rolling ve varsayılan olarak işaretli mariadb-13.rolling bulunur. Üretim sunucusu için LTS serisini seçmek ve sürümü betiğe açıkça vermek, istemediğiniz bir ana sürüme geçmenizi önler. Bu seride bir özellik yalnızca 13.x sürümlerinde geliyorsa bunu açıkça belirtiyoruz; o özelliği 12.3'te bulamazsınız.
İlk bağlantı: sürümünüzü öğrenin
Seriye başlamadan önce sunucunuza bağlanıp hangi sürümle çalıştığınızı doğrulayın. Linux'ta paketle kurulmuş bir sunucuda root hesabı varsayılan olarak unix_socket ile doğrulandığı için en kolay yol sudo ile bağlanmaktır. Kendi kullanıcı hesabınız varsa -u ve -p ile bağlanırsınız; -p'ye değer vermediğinizde istemci parolayı sorar:
sudo mariadb
mariadb -u kullanici -pBağlandığınızda istem satırında köşeli parantez içinde geçerli veritabanı görünür; veritabanı seçmediyseniz (none) yazar. Sürümü öğrenmek için:
SELECT VERSION();VERSION() sunucu sürümünü belirten bir metin döndürür. Belgelere göre bu metnin sonunda bazı ekler bulunabilir: -log genel günlük, yavaş sorgu günlüğü ya da ikili günlük açık demektir; -debug sunucunun hata ayıklama için derlendiğini, -embedded gömülü sunucuyu gösterir. Aynı bilgiyi toplu modda tek satır olarak almak için mariadb -N -B -e "SELECT VERSION();" kullanılabilir. İstemcinin diğer özellikleri birinci öğrenme yolundaki istemci yazısında.
1. Kurulum ve ilk adımlar

- MariaDB kurulumu: Ubuntu, Debian ve RHEL: Dağıtım deposundan ya da
mariadb_repo_setupbetiğiyle MariaDB deposundan kurulum, sürüm seçimi ve paket adları. - mariadb-secure-installation: Betiğin her adımının ne yaptığını ve güncel kimlik doğrulama modelinde hangilerinin hâlâ gerekli olduğunu anlatır.
- mariadb komut satırı istemcisi: Bağlantı parametreleri, istemci komutları,
source,DELIMITER, toplu mod ve--safe-updates. - Uzaktan bağlantı ve bind-address: Sunucuyu ağa açmak, uzak hesapların host kısmı, güvenlik duvarı ve bağlantı testi.
- my.cnf yapılandırma dosyaları: Dosyaların okunma sırası, gruplar,
!includedir, önekler ve etkin değerin kaynağını bulma. - systemd ile başlatma ve durdurma:
mariadb.service, drop-in dosyaları, zaman aşımı,LimitNOFILEve çoklu örnek.
2. Temel SQL
- Veritabanı ve tablo oluşturma:
CREATE DATABASE,CREATE TABLE,IF NOT EXISTS,OR REPLACEveSHOW CREATE TABLE. - MariaDB veri tipleri: Sayısal, metin ve tarih tipleri,
AUTO_INCREMENT,NULLve depolama gereksinimleri. - INSERT, UPDATE, DELETE: Veri eklemek, değiştirmek ve silmek;
ON DUPLICATE KEY UPDATE,REPLACEveRETURNING. - SELECT, WHERE, ORDER BY, LIMIT: Veri sorgulamanın temelleri, filtreleme, sıralama, sayfalama ve
DISTINCT. - JOIN ve alt sorgular: Birleştirme türleri, alt sorgular ve
UNION,INTERSECT,EXCEPTküme işlemleri. - GROUP BY ve toplama fonksiyonları: Gruplama,
HAVING,WITH ROLLUP,COUNT,SUMveGROUP_CONCAT. - ALTER TABLE: Var olan tabloya sütun eklemek, değiştirmek,
ALGORITHMveLOCKile çevrim içi şema değişikliği.
3. Orta düzey SQL
- Index oluşturma:
PRIMARY KEY,UNIQUE, çok sütunlu dizinler ve dizinleri geçici olarak yok saymak. - Foreign key ve CHECK kısıtlamaları: Tablolar arası bütünlük,
ON DELETEveON UPDATEdavranışları veCHECK. - Transaction ve izolasyon seviyeleri:
START TRANSACTION,COMMIT,ROLLBACK,SAVEPOINTve kilit davranışı. - CTE ve WITH RECURSIVE: Ortak tablo ifadeleriyle okunabilir sorgular ve hiyerarşik veride özyinelemeli sorgular.
- Window fonksiyonları:
OVER,PARTITION BY,ROW_NUMBER,RANK,LAGveLEAD. - String fonksiyonları:
CONCAT,SUBSTRING,REPLACE, düzenli ifade fonksiyonları veLIKE.
4. Tarih, JSON ve programlanabilir nesneler
- Tarih ve saat fonksiyonları:
NOW,DATE_FORMAT,DATE_ADD,DATEDIFFve saat dilimleri. - JSON fonksiyonları:
JSON_VALUE,JSON_EXTRACT,JSON_TABLEve JSON doğrulama. - View oluşturma:
CREATE VIEW,ALGORITHM,WITH CHECK OPTIONve güncellenebilir görünümler. - Stored procedure ve function: Saklı yordam ve fonksiyon yazmak, parametreler,
DELIMITERveCALL. - Trigger tetikleyiciler:
BEFOREveAFTERtetikleyicileri,NEWveOLDile sınırlamalar. - Event Scheduler: Zamanlanmış görevler,
event_schedulerdeğişkeni,CREATE EVENTveALTER EVENT.
5. Metin, veri yükleme ve ileri tablo özellikleri

- Karakter seti ve collation: utf8mb4: Türkçe karakterler için doğru karakter seti ve sıralama kuralı ile
character_set_*değişkenleri. - FULLTEXT arama: Tam metin dizinleri,
MATCH ... AGAINST, boolean mod ve durdurma kelimeleri. - LOAD DATA ve mariadb-import: CSV ve metin dosyalarını içeri aktarmak,
LOCALseçeneği ve komut satırı aracı. - Tablo bölümleme (partitioning):
RANGE,LIST,HASHveKEYbölümleme, bölüm budama ve bakım. - System-versioned temporal tablolar: Satırların geçmişini saklamak,
FOR SYSTEM_TIMEsorguları ve uygulama zamanı periyotları. - Vector arama:
VECTORveri tipi, mesafe fonksiyonları ve vektör dizinleriyle benzerlik araması.
6. Kullanıcılar ve güvenlik
- CREATE USER ile kullanıcı oluşturma: Hesap oluşturmak, yeniden adlandırmak, silmek, host kısmı ve hesap kilitleme.
- GRANT ve REVOKE: Yetki seviyeleri, yetki vermek ve geri almak,
SHOW GRANTSile denetlemek. - Roller:
CREATE ROLE,SET ROLEveSET DEFAULT ROLEile yetkileri gruplamak. - Kimlik doğrulama: unix_socket ve ed25519: Kimlik doğrulama eklentileri, parolasız yerel erişim ve parola tabanlı yöntemler.
- Root parolası sıfırlama: Erişimi kaybettiğinizde parolayı sıfırlamak, parola süresi ve parola doğrulama eklentileri.
- SSL/TLS şifreli bağlantı: Sunucu ve istemci tarafında TLS, hesaplar için şifreli bağlantı zorunluluğu.
7. Yedekleme, günlükler, replikasyon ve izleme
- mariadb-dump ile yedekleme ve geri yükleme: Mantıksal yedek almak,
--single-transactiongibi seçenekler ve geri yükleme. - mariadb-backup ile fiziksel yedekleme: Tam ve artımlı yedek,
--prepareve--copy-backadımları. - Binary log ve PITR: İkili günlük biçimleri,
mariadb-binlog, eski günlükleri temizlemek ve belirli bir ana geri dönmek. - Replikasyon kurulumu ve GTID: Birincil ve kopya sunucu kurulumu, GTID, replikasyon durumunu izlemek ve
read_only. - Error log ve slow query log: Hata günlüğü, genel günlük, yavaş sorgu günlüğü ve günlük döndürme.
- SHOW PROCESSLIST ve KILL: Çalışan bağlantıları ve sorguları görmek, sonlandırmak ve kilit beklemelerini izlemek.
8. Performans, yükseltme, sürüm ve sık hatalar
- EXPLAIN ve ANALYZE: MariaDB'nin sorgu planı çıktısını okumak,
FORMAT=JSON,ANALYZEifadesi ve optimizer ipuçları. - InnoDB buffer pool ve performans ayarları:
innodb_buffer_pool_size, bellek dağılımı, redo log ve temel sistem değişkenleri. - Sürüm yükseltme ve mariadb-upgrade: Ana sürümler arası yükseltme adımları,
mariadb-upgradeve 11.8'den 12.3'e uyumsuzluklar. - MySQL'den MariaDB'ye geçiş: Uyumluluk farkları, geçiş planı ve yan yana kurulum.
- MariaDB 12.3 LTS yenilikleri: Yerel belgelerde 12.x ile geldiği belirtilen özellikler ve kaldırılan seçenekler.
- Sık hatalar ve çözümleri: 1045, 1064, 1062, 1146, 1205, 1213 ve 2002 hataları ile sunucunun başlamaması.
Seriden sonra nereye bakmalı?
Bu seri MariaDB Community Server'a odaklanır. Galera Cluster, MaxScale ve MariaDB Enterprise Server'a özgü özellikler yalnızca gerektiği yerde kısaca anılır; bunların ayrıntıları resmî belgelerin ilgili bölümlerindedir. Genel konular için sitemizdeki diğer yazılar da işinize yarayabilir: sorgu planlamasının genel ilkeleri için SQL sorgu optimizasyonu, yedekleme politikası için veritabanı yedekleme stratejileri, iki popüler veritabanının karşılaştırması için MySQL ve PostgreSQL karşılaştırması, uygulama güvenliği için SQL injection önleme yazılarına bakabilirsiniz.
Sık Sorulan Sorular
Serideki yazıları hangi sırayla okumalıyım?
Yeni başlıyorsanız öğrenme yollarını numara sırasıyla izleyin: önce kurulum ve istemci, sonra temel ve orta düzey SQL. Sunucu yönetiyorsanız birinci yoldan sonra doğrudan güvenlik, yedekleme ve performans yollarına geçebilirsiniz. Her yazı kendi içinde tamamlanmış bir konu anlatır ve önkoşul olan yazılara bağlantı verir.
Örnekler hangi sürüme göre yazıldı?
Örnekler MariaDB 12.3 LTS dönemine ait resmî MariaDB Server belgelerine göre yazıldı. Bir davranış belirli bir sürümle değiştiyse yazıda belgenin verdiği sürüm numarasıyla belirtiyoruz. Eski bir LTS sürümü kullanıyorsanız kendi sürümünüzün belgelerine de bakın.
MySQL bilgim MariaDB'de işe yarar mı?
Büyük ölçüde evet; temel SQL, araçların çoğu ve yapılandırma mantığı benzerdir. Ancak kimlik doğrulama, bazı sistem değişkenleri ve özellikler farklıdır. Farkların özeti MariaDB nedir ve MySQL'den geçiş yazılarında.
Hangi sürümü kurmalıyım?
Üretim için güncel LTS sürümünü, yani yerel belgelere göre MariaDB 12.3'ü öneriyoruz. Kurulum betiğinde sürümü açıkça belirtmezseniz rolling seriye geçebileceğinizi unutmayın; ayrıntılar kurulum yazısında.
Marka adları sahiplerine aittir. Bu yazı bağımsız bir teknik rehberdir; adı geçen kuruluşlarla bayilik veya ortaklık ilişkisi bulunduğu anlamına gelmez.
İlgili içerikler: MariaDB nedir · SQL nedir · MariaDB kurulumu · mariadb istemcisi · sık hatalar