MariaDB'yi bir Linux sunucuya kurmanın en kolay yolu paket yöneticisini kullanmaktır: Ubuntu ve Debian'da apt, RHEL ve türevlerinde dnf, SLES ve openSUSE'de zypper. Dağıtımın kendi deposundaki sürüm size yetiyorsa tek komutla kurulum biter; belirli bir ana sürüm, örneğin MariaDB 12.3 LTS istiyorsanız önce MariaDB'nin paket deposunu mariadb_repo_setup betiğiyle tanımlar, ardından paketleri o depodan kurarsınız.
Bu yazıda iki yolu da resmî MariaDB Server belgelerine dayanarak adım adım anlatıyoruz: depo betiğinin indirilip doğrulanması, sürüm seçimi, dağıtıma göre paket adları, kurulum sırasında arka planda olanlar, ilk başlatma ve ilk bağlantı. Kurulum sonrası güvenlik adımları için mariadb-secure-installation rehberine, MariaDB'nin ne olduğuna dair genel bilgi için MariaDB nedir yazısına bakabilirsiniz.
Dağıtım paketi mi, MariaDB deposu mu?

RHEL, CentOS, Fedora gibi RPM tabanlı dağıtımlar ile Debian ve Ubuntu kendi depolarında MariaDB paketleri sunar ve bu paketler o dağıtım tarafından desteklenir. Belgeler, dağıtımın sunduğundan daha yeni bir sürüme ihtiyaç duyduğunuzda MariaDB'nin kendi depolarını kullanmanızı önerir. Depo kullanmanın asıl faydası güncellemelerdir: yeni bir bakım sürümü çıktığında normal sistem güncellemesiyle birlikte gelir, elle .deb ya da .rpm dosyası indirmeniz gerekmez.
İki kaynağın paketleri birebir aynı değildir. Debian ve Ubuntu'nun kendi depolarındaki paketler, Debian'ın MariaDB kaynak kodunu yansıttığı ve bazı özel değişiklikler içeren bir ağaçtan üretilir. MariaDB Foundation ve MariaDB Corporation depolarındaki paketler ise MariaDB'nin resmî kaynak kodundaki debian/ paketleme betikleriyle oluşturulur. Belgelerde sayılan farklar arasında yapılandırma dosyalarının yeri, TLS kütüphanesi ve kimlik doğrulama varsayılanları vardır; bunlara yazının sonunda ayrıca değiniyoruz.
| Dağıtım ailesi | Paket yöneticisi | Betiğin oluşturduğu depo dosyası | Sunucu paketi adı |
|---|---|---|---|
| Debian, Ubuntu | apt | /etc/apt/sources.list.d/ altında mariadb kaynak dosyası | mariadb-server |
| RHEL ve eşdeğerleri | dnf (eski sistemlerde yum) | /etc/yum.repos.d/mariadb.repo | MariaDB-server |
| SLES, openSUSE | zypper | /etc/zypp/repos.d/mariadb.repo | MariaDB-server |
Tablodaki ayrıntıya dikkat edin: Debian ailesinde paket adları küçük harfle (mariadb-server), MariaDB deposundan gelen RPM paketlerinde ise büyük harfle (MariaDB-server) yazılır. Paket yöneticisinin temel kullanımı için apt ve dnf ile paket yönetimi yazısına göz atabilirsiniz.
En hızlı yol: dağıtım deposundan kurmak
Kurulum hızlı başlangıç rehberi, önce paket listesini güncellemenizi, sonra sunucu ve istemci paketlerini kurmanızı ister. Debian ve Ubuntu için:
sudo apt update
sudo apt install mariadb-server mariadb-client galera-4Red Hat, CentOS ve Fedora için aynı rehber şu komutları verir (eski sistemlerde yum, yenilerinde dnf):
sudo dnf update
sudo dnf install mariadb mariadb-serverBu yöntemde hangi MariaDB sürümünü alacağınızı dağıtımınız belirler. Bir LTS dağıtımında bu genellikle o dağıtım çıktığı dönemin sürümüdür ve yıllarca aynı ana sürümde kalır. Uygulamanız belirli bir özelliğe, örneğin yalnızca yeni sürümlerde bulunan bir fonksiyona ihtiyaç duyuyorsa bir sonraki bölümdeki depo yöntemine geçin.
MariaDB paket deposunu mariadb_repo_setup ile tanımlamak
MariaDB Corporation, depo yapılandırmasını otomatikleştiren iki kabuk betiği yayımlar: Community Server için mariadb_repo_setup, Enterprise Server için mariadb_es_repo_setup. Bu yazı Community Server ile ilgilendiği için yalnızca ilkini kullanıyoruz; Enterprise betiği müşteri indirme anahtarı (token) ister. Alternatif olarak MariaDB Foundation'ın web üzerindeki depo yapılandırma aracı da dağıtımınızı, istediğiniz sürümü ve yansı sunucusunu sorup hangi dosyaları düzenleyeceğinizi gösterir. Belgelere göre Corporation'ın Community deposundaki ikili dosyalar, Foundation deposundakilerle aynıdır.
Ön koşullar
Betiğin çalışması için curl kurulu olmalıdır; Debian ve Ubuntu'da ayrıca apt-transport-https paketi gerekir. Betik bunları kendisi kontrol eder ve eksikse depo dosyasını yazmadan önce sizi uyarır:
sudo apt update
sudo apt install curl apt-transport-httpssudo dnf install curlİndirme, doğrulama ve çalıştırma
Betiği indirdikten sonra SHA256 özetini doğrulamanız önerilir. Belgelerdeki "Versions" tablosunda her betik sürümünün özeti listelenir; aşağıdaki komutta ${checksum} yerine kullandığınız sürüme ait değeri yazarsınız. Betiğin sürümü bir tarihtir; --version seçeneğiyle ya da dosyanın 4. satırındaki version="..." ifadesine bakarak öğrenebilirsiniz.
curl -LsSO https://r.mariadb.com/downloads/mariadb_repo_setup
echo "${checksum} mariadb_repo_setup" | sha256sum -c -
chmod +x mariadb_repo_setup
sudo ./mariadb_repo_setupBetik root yetkisi istediği için sudo ile çalıştırılır. mariadb_repo_setup varsayılan olarak değişiklikleri doğrudan sisteme uygular: depo dosyasını yazar, GPG anahtarlarını içe aktarır ve paket önbelleğini günceller. Enterprise betiğinde bu davranışı açmak için --apply gerekir; Community betiğinde ise tersini yapan --write-to-stdout seçeneği vardır. Belgeler, iki betiğin de bilinmeyen seçenekleri yok saydığını, dolayısıyla --apply vermenin Community betiğine zarar vermediğini belirtir.
./mariadb_repo_setup --skip-check-installed --skip-tools --skip-maxscale --write-to-stdoutSürüm seçimi: --mariadb-server-version
Bu ayrıntı çoğu kurulum rehberinde atlanır: betik, seçenek verilmezse kendi varsayılan sürüm serisini yapılandırır ve yerel belgelerdeki listede Community Server için varsayılan mariadb-13.rolling olarak işaretlidir. Rolling seri sürekli yeni özellik alan, uzun süreli bakım taahhüdü olmayan seridir. Üretim sunucusunda uzun süreli bakım (LTS) serisinde kalmak istiyorsanız sürümü açıkça belirtin. Community betiğinde sürüm adının başına mariadb- eklenir:
sudo ./mariadb_repo_setup --mariadb-server-version="mariadb-12.3"Belgelerdeki desteklenen Community sürüm listesi şunları içerir: mariadb-10.6, mariadb-10.11, mariadb-11.4, mariadb-11.8, mariadb-11.rolling, mariadb-11.rc, mariadb-12.1, mariadb-12.2, mariadb-12.3, mariadb-12.rolling, mariadb-13.rolling ve mariadb-12.rc. Tam bir bakım sürümüne sabitlemek de mümkündür; belgelerin örneği --mariadb-server-version="mariadb-11.8.5" şeklindedir. Ancak belgeler bunu önermez, çünkü küçük bakım sürümleri önemli hata ve güvenlik düzeltmeleri içerebilir.
Betiği sonradan yeni bir ana sürüm için yeniden çalıştırırsanız depo dosyası o sürüme göre güncellenir. Debian ve Ubuntu sayfası da, depoyu betikle kurduysanız ana sürümü değiştirmenin yolunun betiği yeniden çalıştırmak olduğunu söyler. Ana sürüm geçişinin kendisi ise sadece paket güncellemesinden ibaret değildir; ayrıntılar MariaDB sürüm yükseltme yazısında.
Desteklenmeyen ama uyumlu dağıtımlar
Betik dağıtımınızı tanımıyorsa ve dağıtımınızın desteklenen birinden türediğini biliyorsanız --os-type ile --os-version seçeneklerini birlikte verebilirsiniz; birini verirseniz diğeri de zorunludur. --os-type için geçerli değerler rhel, debian, ubuntu ve sles'dir. RHEL için sürüm numarası (8, 9, 10), Debian ve Ubuntu için ise sürüm kod adı yazılır; örneğin Debian 13 için trixie, Ubuntu 24.04 için noble. Belgeler Pop!_OS 24.04 için --os-type=ubuntu --os-version=noble örneğini verir.
Betik sistemde neleri değiştirir?
RHEL ve eşdeğerlerinde betik /etc/yum.repos.d/mariadb.repo dosyasını oluşturur ve paket imzalarını doğrulayan GPG anahtarını rpm --import ile supplychain.mariadb.com adresinden içe aktarır. SLES'te aynı işi /etc/zypp/repos.d/mariadb.repo için yapar. Debian ve Ubuntu'da depo dosyasını /etc/apt/sources.list.d/ altına yazar, GPG anahtarını içe aktarır, paket önbelleğini apt update ile tazeler ve /etc/apt/preferences.d/ altında MariaDB depolarına daha yüksek öncelik veren bir tercih dosyası bırakır. Bu öncelik dosyası, dağıtım deposundaki MariaDB paketleriyle karışıklığı önlemek içindir. Seçenek tablosuna göre Debian ve Ubuntu'da varsayılan biçim Deb822 tipi mariadb.sources dosyasıdır; eski tek satırlık mariadb.list biçimini isterseniz --list seçeneğini verirsiniz.
Betik varsayılan olarak MaxScale deposunu da ekler. Yalnızca sunucuyu kuracaksanız --skip-maxscale ile bunu atlayabilirsiniz. Tools deposu artık varsayılan olarak yapılandırılmaz; gerekiyorsa --include-tools verilir.
Paketleri kurmak

Depo tanımlandıktan sonra paketleri dağıtımınızın aracıyla kurarsınız. Depo kurulum sayfası her dağıtım için sunucu, istemci ve fiziksel yedekleme aracını birlikte kuran örnekler verir:
sudo apt install mariadb-server mariadb-client mariadb-backupsudo dnf install MariaDB-server MariaDB-client MariaDB-backupsudo zypper install MariaDB-server MariaDB-client MariaDB-backupmariadb-backup (RPM tarafında MariaDB-backup) çalışan sunucunun fiziksel yedeğini alan araçtır; nasıl kullanıldığını mariadb-backup yazısında anlatıyoruz. Debian paket tablosuna göre mariadb-client paketi mariadb komut satırı istemcisini ve mariadb-dump gibi araçları, mariadb-server ise sunucuyu ve sunucu araçlarını içerir; karakter seti dosyaları ve /etc/my.cnf ise mariadb-common paketindedir. Uygulama geliştirirken başlık dosyalarına ihtiyaç duyarsanız Debian'da libmariadb-dev, RPM tarafında MariaDB-devel paketi vardır.
sudo dnf install MariaDB-server MariaDB-server-galera MariaDB-client galera-4Galera kümesinin kurulumu ve ilk düğümün başlatılması bu serinin kapsamı dışında; belgeler yalnızca ilk düğümün bootstrap edilmesi gerektiğini hatırlatır. Genel bilgi için MariaDB nedir yazısındaki Galera bölümüne bakabilirsiniz.
Kurulum sırasında arka planda neler olur?
Paket kurulumu yalnızca dosyaları kopyalamaz. systemd sayfasına göre MariaDB sunucu RPM veya DEB paketi kurulurken mariadb-install-db betiği otomatik çalışır ve ilk sistem veritabanlarını ve kullanıcıları oluşturur. Debian paket sayfası ayrıca mariadb-server paketinin, yoksa mysql adında bir kullanıcı ve grup oluşturduğunu belirtir. Sunucu süreci systemd altında bu mysql kullanıcısıyla çalışır.
mariadb-install-db varsayılan olarak iki tam yetkili hesap oluşturur: root@localhost ve veri dizininin sahibi olan işletim sistemi kullanıcısıyla aynı adlı hesap (genellikle mysql@localhost). İkisi de önce unix_socket eklentisiyle kimlik doğrular; yani işletim sisteminde root iseniz MariaDB'ye root olarak parolasız bağlanırsınız. Parola yöntemi de ikinci seçenek olarak tanımlıdır, ama başlangıçta geçersiz bir parola atanmıştır. Bu yüzden kurulumdan hemen sonra mariadb -u root -p ile parola denemek çoğu zaman işe yaramaz. Ayrıntılar için unix_socket ve ed25519 kimlik doğrulama yazısına bakın.
CREATE USER 'root'@'localhost' IDENTIFIED VIA unix_socket
OR mysql_native_password USING 'invalid';İlk başlatma ve doğrulama
Hızlı başlangıç rehberine göre MariaDB genellikle kurulumdan sonra kendiliğinden başlar; RHEL sayfası ise kurulum bittikten sonra servisi başlatmanızı söyler. Her iki durumda da durumu kontrol edip gerekirse başlatmak ve açılışta otomatik başlamasını sağlamak için:
sudo systemctl status mariadb
sudo systemctl start mariadb
sudo systemctl enable mariadb.serviceServisin ayrıntılı yönetimi, zaman aşımı ve limit ayarları için MariaDB systemd yazısına bakabilirsiniz. Ardından istemciyle bağlanın. Varsayılan kimlik doğrulama modeli nedeniyle en güvenilir yol sudo ile bağlanmaktır:
sudo mariadbİstem satırı geldiğinde sunucu sürümünü sorgulayarak hangi paketi kurduğunuzu doğrulayabilirsiniz. VERSION() sunucu sürümünü belirten bir metin döndürür; metnin sonuna, örneğin günlükleme açıksa -log gibi ekler gelebilir.
SELECT VERSION();İstemcinin seçenekleri, toplu çalıştırma ve source gibi komutlar mariadb komut satırı istemcisi yazısında anlatılıyor.
Belirli veya eski bir sürümü kurmak
Debian ve Ubuntu sayfası, MariaDB apt deposunun son birkaç sürümü barındırdığını ve mevcut sürümleri şu komutla görebileceğinizi söyler:
sudo apt-cache showpkg mariadb-serverÇıktının sonundaki "Provides" bölümünde sürümler listelenir. MariaDB deposundan gelen sürümlerin numarasında "maria", Ubuntu deposundan gelenlerde "ubuntu" ifadesi bulunur. Eski bir sürümü kurarken önemli bir tuzak vardır: yalnızca mariadb-server=sürüm yazarsanız apt bağımlılıkların en yeni sürümünü seçmeye çalışır ve mariadb-client ile mariadb-server-core uyumsuz kalır. Belgelerin çözümü, bütün MariaDB paketlerini aynı sürümle tek komutta belirtmektir:
ver="1:12.0.2+maria~ubu2404"
sudo apt install \
mariadb-server=${ver} \
mariadb-client=${ver} \
mariadb-server-core=${ver} \
mariadb-client-core=${ver}Buradaki sürüm dizesi belgelerdeki örnekten alınmıştır; kendi sisteminizde apt-cache showpkg çıktısında gördüğünüz tam dizeyi kullanın.
Debian ve Ubuntu depolarındaki MariaDB'nin farkları

Dağıtım deposundan kurduysanız belgelerin "Differences in MariaDB in Debian" sayfasındaki şu noktaları bilmeniz işinizi kolaylaştırır:
- Yapılandırma dosyaları:
/etc/mysql/my.cnf,mysql-commonpaketi kurulduğundaupdate-alternativesile yönetilen bir sembolik bağlantıdır ve kurulu ürüne göremysql.cnfya damariadb.cnfdosyasını gösterir. Belgeye göre MariaDB yapılandırma dosyalarının çoğu aslında/etc/mysql/altındaki alt dizinlerde durur. - Kimlik doğrulama: Debian 9 ve Ubuntu 15.10 ile sonraki sürümlerin kendi depolarındaki paketlerde
unix_socketeklentisi yeni kurulumlarda varsayılan olarak yüklenir. - TLS kütüphanesi: Dağıtım paketlerinde sunucu, gömülü wolfSSL ile statik bağlanır; MariaDB depolarındaki paketlerde ise sistemin OpenSSL kütüphanesi dinamik olarak kullanılır.
- Sistem değişkenleri: Belgeye göre MariaDB 11.6'dan itibaren standart MariaDB ile Debian paketi arasında sistem değişkeni farkı kalmamıştır; örneğin iki tarafta da varsayılan karakter seti utf8mb4'tür.
Yapılandırma dosyalarının okunma sırası ve hangisinin geçerli olduğunu anlama yöntemleri my.cnf yapılandırma dosyaları yazısında ayrıntılı olarak anlatılıyor.
Sık yapılan hatalar
- Betiği sürüm vermeden çalıştırıp rolling seriye geçmek: Varsayılan sürüm listede
mariadb-13.rollingolarak görünür. Üretimde LTS istiyorsanız--mariadb-server-version="mariadb-12.3"gibi açık bir değer verin. - Betiği doğrulamadan çalıştırmak:
curl ... | sudo bashkalıbı kolaydır ama indirdiğiniz dosyanın özetini kontrol etmez. Önce dosyayı indiripsha256sum -cile doğrulamak belgelerin gösterdiği yoldur. - Paket adlarını karıştırmak: RPM deposunda
MariaDB-server, Debian ailesindemariadb-serveryazılır. Dağıtımın kendi RPM deposunda ise hızlı başlangıç rehberinin örneğindeki gibi küçük harflimariadb-serveradı geçer. - Eski sürüm kurarken tek paketi sabitlemek: Bağımlılıklar en yeni sürüme gider ve apt "unmet dependencies" hatası verir. Bütün MariaDB paketlerini aynı sürüm dizesiyle yazın.
- Kurulumdan sonra root parolasıyla bağlanmaya çalışmak: Varsayılan
root@localhosthesabının parolası geçersizdir;sudo mariadbkullanın. - 12.3'te Galera paketini unutmak: Küme kuruyorsanız
MariaDB-server-galeraartık ayrı bir pakettir. - Uzak bağlantı açılmıyor diye kurulumu tekrar etmek: Pek çok paket sunucuyu yalnızca 127.0.0.1 üzerinde dinletir; bu bir kurulum hatası değil, güvenlik varsayılanıdır. Bkz. uzaktan bağlantı ve bind-address yazısı.
Sık Sorulan Sorular
Dağıtımın MariaDB paketi ile MariaDB deposu aynı anda kullanılabilir mi?
Betik Debian ve Ubuntu'da MariaDB depolarına daha yüksek öncelik veren bir tercih dosyası oluşturur; böylece aynı adlı paketler MariaDB deposundan gelir. Belgelerdeki apt-cache showpkg örneğinde iki kaynaktaki sürümler yan yana listelenir ve sürüm dizelerindeki "maria" ya da "ubuntu" ifadesiyle ayırt edilir. Karışıklık yaşamamak için bütün MariaDB paketlerini tek kaynaktan kurun.
MariaDB 12.3 LTS yerine en yeni sürümü mü kurmalıyım?
Belgelerde uzun süreli sürümlerin beş yıl, kısa süreli sürümlerin bir yıl bakım aldığı, ayrıca rolling sürümlerin de bulunduğu belirtilir. Üretim sunucusu için genellikle LTS serisi tercih edilir; rolling seri yeni özellikleri erken almak isteyenler içindir. Sürüm politikasının özeti MariaDB öğrenme rehberinde, 12.x serisinde yerel belgelerin açıkça söz ettiği değişiklikler ise MariaDB 12.3 LTS yazısında toplanmış durumda.
MySQL kurulu bir sunucuya MariaDB kurabilir miyim?
Paket adları ve dosya yolları çakıştığı için bu ayrı bir planlama gerektirir. Belgelerde MySQL ile yan yana kurulum için ayrı bir sayfa vardır; geçiş adımlarını MySQL'den MariaDB'ye geçiş yazısında ele alıyoruz.
Kurulumdan sonra ilk yapmam gereken nedir?
Servisin çalıştığını systemctl status mariadb ile doğrulayın, sudo mariadb ile bağlanın, ardından mariadb-secure-installation ile anonim kullanıcıları ve test veritabanını kaldırın. Uygulamanız için root yerine ayrı bir hesap açmak üzere CREATE USER yazısına geçebilirsiniz.
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 öğrenme rehberi · mariadb-secure-installation · systemd ile başlatma · my.cnf dosyaları · apt ve dnf ile paket yönetimi · MariaDB nedir