MariaDB Nedir ve Neden Tercih Edilir?
MariaDB, MySQL veritabanı yönetim sisteminin topluluk tarafından geliştirilen, açık kaynaklı bir “fork”udur (çatallanmış versiyonu). MySQL’in Oracle tarafından satın alınmasının ardından, açık kaynak topluluğu tarafından projenin özgür ve açık kalmasını sağlamak amacıyla başlatılmıştır. MariaDB, MySQL ile yüksek derecede uyumluluğa sahiptir, bu da mevcut MySQL uygulamalarının MariaDB’ye kolayca taşınabileceği anlamına gelir. Performans, güvenlik ve yeni özellikler açısından sürekli geliştirilen MariaDB, özellikle web uygulamaları, kurumsal çözümler ve büyük veri projeleri için popüler bir seçimdir.
Debian 11 (Bullseye) ise, kararlılığı, güvenilirliği ve geniş paket deposuyla bilinen popüler bir Linux dağıtımıdır. MariaDB’yi Debian 11 üzerine kurmak, güçlü bir veritabanı altyapısını sağlam ve güncel bir işletim sistemiyle birleştirmek anlamına gelir. Bu rehberde, MariaDB’yi Debian 11 sisteminize adım adım nasıl kuracağınızı, temel güvenlik yapılandırmalarını nasıl yapacağınızı ve veritabanı yönetiminin temellerini nasıl gerçekleştireceğinizi öğreneceksiniz.
MariaDB Kurulumuna Başlamadan Önce
MariaDB kurulumuna başlamadan önce sisteminizin hazır olduğundan emin olmak önemlidir. Bu adımlar, sorunsuz bir kurulum süreci için zemin hazırlar.
Sistem Güncellemesi ve Ön Gereksinimler
Herhangi bir yazılım kurulumuna başlamadan önce, sisteminizin paket listesini güncellemek ve mevcut paketleri yükseltmek iyi bir uygulamadır. Bu, en son güvenlik yamalarına ve yazılım düzeltmelerine sahip olmanızı sağlar ve olası bağımlılık sorunlarını önler.
sudo apt update
sudo apt upgrade -y
sudo apt update: Sisteminizin paket indekslerini günceller. Bu, mevcut paketlerin en son sürümleri ve yeni paketler hakkında bilgi edinmek için gereklidir.sudo apt upgrade -y: Mevcut yüklü paketleri en son sürümlerine yükseltir.-yparametresi, yükseltme sırasında sorulan tüm onay sorularına otomatik olarak “evet” yanıtı verir.
Ayrıca, bu rehberdeki komutları çalıştırmak için sudo yetkilerine sahip bir kullanıcı olmanız gerekmektedir. Eğer sudo yetkilerine sahip değilseniz, sistem yöneticinizle iletişime geçmeniz veya root kullanıcısına geçmeniz gerekebilir (ancak root kullanıcısı olarak doğrudan çalışmak genellikle önerilmez).
MariaDB Kurulumu
Sisteminiz hazır olduğunda, MariaDB sunucusunu kurmaya başlayabiliriz. Debian’ın resmi depoları, MariaDB’nin kararlı bir sürümünü içerir, bu da kurulumu son derece basit hale getirir.
MariaDB Sunucusunun Kurulması
MariaDB sunucusunu ve gerekli istemci araçlarını kurmak için aşağıdaki komutu kullanın:
sudo apt install mariadb-server mariadb-client -y
mariadb-server: MariaDB veritabanı sunucusunun kendisini kurar. Bu paket, veritabanı motorunu, yönetim araçlarını ve gerekli bağımlılıkları içerir.mariadb-client: MariaDB veritabanı sunucusuna bağlanmak ve onunla etkileşim kurmak için kullanılan istemci araçlarını (örneğin,mysqlkomut satırı aracı) kurar. Genelliklemariadb-serverpaketi ile birlikte gelir, ancak açıkça belirtmek zarar vermez.
Kurulum tamamlandıktan sonra, MariaDB servisi otomatik olarak başlatılmalı ve sistem açılışında otomatik olarak başlamak üzere yapılandırılmalıdır. Bu durumu kontrol edebiliriz.
MariaDB Servisini Kontrol Etme
MariaDB servisinin durumunu kontrol etmek için systemctl komutunu kullanın:
systemctl status mariadb
Çıktı, servisin aktif (running) olup olmadığını göstermelidir. Yeşil renkte “active (running)” ifadesini görmelisiniz. Eğer servis çalışmıyorsa, aşağıdaki komutlarla başlatabilir ve otomatik başlatmayı etkinleştirebilirsiniz:
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo systemctl start mariadb: MariaDB servisini başlatır.sudo systemctl enable mariadb: MariaDB servisinin sistem her başlatıldığında otomatik olarak başlamasını sağlar.
MariaDB Güvenlik Yapılandırması
MariaDB kurulumundan sonra yapılması gereken en kritik adımlardan biri güvenlik yapılandırmasıdır. MariaDB, güvenlik açıklarını gidermek ve sunucunuzu daha güvenli hale getirmek için özel bir betik sağlar: mysql_secure_installation.
sudo mysql_secure_installation
Bu betiği çalıştırdığınızda size bir dizi soru sorulacaktır. İşte bu sorular ve önerilen yanıtlar:
- Enter current password for root (enter for none): MariaDB’nin root kullanıcısı için mevcut bir şifre isteyecektir. Yeni bir kurulum yaptığınız için genellikle boş bırakıp Enter tuşuna basabilirsiniz.
- Set root password? [Y/n]: MariaDB’nin root kullanıcısı için bir şifre belirlemek isteyip istemediğinizi sorar. Kesinlikle
Yyazıp Enter’a basın ve güçlü bir şifre belirleyin. Bu şifre, veritabanı sunucusunun en yetkili kullanıcısı için olacaktır. Şifreyi iki kez girmeniz istenecektir. - Remove anonymous users? [Y/n]: Anonim kullanıcılar, herkesin kullanıcı adı veya şifre olmadan MariaDB’ye bağlanmasına izin verir. Bu bir güvenlik riski olduğundan,
Yyazıp Enter’a basarak bunları kaldırmalısınız. - Disallow root login remotely? [Y/n]: MariaDB root kullanıcısının sadece
localhost‘tan (yani sunucunun kendisinden) bağlanmasına izin vermek, uzaktan yetkisiz erişimi engeller. GenellikleYyazıp Enter’a basarak uzaktan root girişini devre dışı bırakmak iyi bir güvenlik uygulamasıdır. Eğer gelecekte uzaktan root erişimine ihtiyacınız olursa, daha sonra bunu yapılandırma dosyasından değiştirebilirsiniz, ancak başlangıçta devre dışı bırakmak en güvenlisidir. - Remove test database and access to it? [Y/n]: MariaDB, test amaçlı bir veritabanı ile birlikte gelir. Üretim ortamlarında buna ihtiyaç yoktur ve potansiyel bir güvenlik açığı olabilir.
Yyazıp Enter’a basarak kaldırın. - Reload privilege tables now? [Y/n]: Yukarıdaki değişikliklerin hemen etkili olması için yetki tablolarının yeniden yüklenmesi gerekir.
Yyazıp Enter’a basarak onaylayın.
Bu adımları tamamladığınızda, MariaDB kurulumunuz temel güvenlik önlemleriyle güçlendirilmiş olacaktır. Belirlediğiniz root şifresini güvenli bir yerde saklamayı unutmayın.
MariaDB Kullanımına Başlama ve Temel Yönetim
MariaDB sunucunuz kurulup güvenli hale getirildikten sonra, veritabanlarıyla çalışmaya başlayabilirsiniz.
MariaDB Kabuğuna Bağlanma
MariaDB root kullanıcısı olarak kabuğa bağlanmak için aşağıdaki komutu kullanın:
mysql -u root -p
Komutu çalıştırdıktan sonra, mysql_secure_installation sırasında belirlediğiniz root şifresini girmeniz istenecektir. Doğru şifreyi girdiğinizde MariaDB komut istemine (MariaDB [(none)]>) yönlendirileceksiniz.
Yeni Bir Veritabanı ve Kullanıcı Oluşturma
MariaDB’de doğrudan root kullanıcısıyla çalışmak yerine, her uygulama veya proje için ayrı bir veritabanı ve buna özel bir kullanıcı oluşturmak en iyi uygulamadır. Bu, yetkilendirmeyi daha iyi yönetmenizi ve güvenlik risklerini azaltmanızı sağlar.
MariaDB kabuğunda aşağıdaki SQL komutlarını çalıştırın:
CREATE DATABASE ornek_veritabani;
Bu komut, ornek_veritabani adında yeni bir veritabanı oluşturur.
CREATE USER 'ornek_kullanici'@'localhost' IDENTIFIED BY 'GucluSifreBuraya!';
Bu komut, ornek_kullanici adında ve sadece localhost‘tan bağlanabilen yeni bir kullanıcı oluşturur. 'GucluSifreBuraya!' kısmını kendi güçlü şifrenizle değiştirin.
GRANT ALL PRIVILEGES ON ornek_veritabani.* TO 'ornek_kullanici'@'localhost';
Bu komut, ornek_kullanici‘ya ornek_veritabani üzerindeki tüm yetkileri verir. Bu, kullanıcının bu veritabanında tablo oluşturma, veri ekleme, güncelleme ve silme gibi tüm işlemleri yapabilmesini sağlar.
FLUSH PRIVILEGES;
Bu komut, yetki tablolarını yeniden yükleyerek yaptığınız değişikliklerin hemen etkili olmasını sağlar.
EXIT;
Bu komut, MariaDB kabuğundan çıkar.
Şimdi yeni oluşturduğunuz kullanıcı ile bağlanmayı deneyebilirsiniz:
mysql -u ornek_kullanici -p
Belirlediğiniz şifreyi girerek bağlanmalısınız. Bağlandıktan sonra, sadece yetki verdiğiniz ornek_veritabani üzerinde işlem yapabilirsiniz.
Temel Veritabanı Yönetimi Komutları
MariaDB kabuğunda kullanabileceğiniz bazı temel komutlar:
SHOW DATABASES;
Sistemdeki tüm veritabanlarını listeler.
USE ornek_veritabani;
Belirli bir veritabanını seçer, böylece sonraki komutlar o veritabanı üzerinde çalışır.
CREATE TABLE kullanicilar (
id INT AUTO_INCREMENT PRIMARY KEY,
ad VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
kayit_tarihi TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Seçili veritabanında kullanicilar adında bir tablo oluşturur.
INSERT INTO kullanicilar (ad, email) VALUES ('Ali Can', 'ali.can@example.com');
INSERT INTO kullanicilar (ad, email) VALUES ('Ayşe Yılmaz', 'ayse.yilmaz@example.com');
kullanicilar tablosuna iki örnek kayıt ekler.
SELECT * FROM kullanicilar;
kullanicilar tablosundaki tüm kayıtları gösterir.
DROP DATABASE ornek_veritabani;
ornek_veritabani adlı veritabanını ve içindeki tüm tabloları ve verileri siler. Bu komutu kullanırken çok dikkatli olun, çünkü geri alınamaz bir işlemdir.
MariaDB Servisini Yönetme
MariaDB servisini başlatma, durdurma ve yeniden başlatma gibi işlemleri systemctl ile yapabilirsiniz:
sudo systemctl stop mariadb # MariaDB servisini durdurur
sudo systemctl start mariadb # MariaDB servisini başlatır
sudo systemctl restart mariadb # MariaDB servisini yeniden başlatır (durdurur ve tekrar başlatır)
sudo systemctl disable mariadb # MariaDB servisinin sistem açılışında otomatik başlamasını engeller (dikkatli kullanılmalı)
Sonuç ve Sıkça Sorulan Sorular (SSS)
Tebrikler! Debian 11 sisteminize MariaDB’yi başarıyla kurdunuz, güvenlik yapılandırmalarını yaptınız ve temel veritabanı yönetimi işlemlerini öğrendiniz. MariaDB, güçlü, esnek ve güvenilir bir veritabanı çözümüdür ve bu rehberle, uygulamalarınız için sağlam bir temel atmış oldunuz. Daha ileri seviye konular için MariaDB’nin resmi belgelerine başvurabilir, yedekleme, replikasyon ve performans optimizasyonu gibi konuları araştırabilirsiniz.
Sıkça Sorulan Sorular (SSS)
Q1: Debian 11’de hangi MariaDB sürümü yüklendiğini nasıl kontrol edebilirim?
MariaDB kabuğuna bağlanarak veya komut satırından kontrol edebilirsiniz:
mysql -V
Veya MariaDB kabuğunda:
SELECT VERSION();
Bu komutlar yüklü MariaDB sunucusunun sürümünü gösterecektir.
Q2: MariaDB’ye uzaktan bağlantıya izin vermek için ne yapmalıyım?
Varsayılan olarak, güvenlik nedeniyle MariaDB sadece localhost‘tan bağlantılara izin verir. Uzaktan bağlantıya izin vermek için:
- MariaDB yapılandırma dosyasını düzenleyin (genellikle
/etc/mysql/mariadb.conf.d/50-server.cnfveya benzeri bir yolda bulunur). bind-address = 127.0.0.1satırını bulun vebind-address = 0.0.0.0olarak değiştirin (bu, tüm arayüzlerden bağlantıya izin verir) veya sunucunuzun belirli bir IP adresini belirtin.- MariaDB servisini yeniden başlatın:
sudo systemctl restart mariadb. - Ayrıca, kullanıcınıza uzaktan bağlanma yetkisi vermeniz gerekir. Örneğin,
CREATE USER 'kullanici'@'%' IDENTIFIED BY 'sifre';komutu, kullanıcının herhangi bir host’tan bağlanmasına izin verir (%wildcard’ı kullanarak). Daha sonra bu kullanıcıya ilgili yetkileri vermeyi unutmayın. - Sunucunuzun güvenlik duvarında (örneğin, UFW) MariaDB’nin varsayılan portu olan 3306’ya gelen bağlantılara izin vermelisiniz:
sudo ufw allow 3306/tcp.
Q3: MariaDB root şifresini unuttum, nasıl sıfırlarım?
MariaDB root şifresini sıfırlamak için aşağıdaki adımları izleyebilirsiniz:
- MariaDB servisini durdurun:
sudo systemctl stop mariadb - MariaDB’yi güvenli modda (şifre doğrulaması olmadan) başlatın:
sudo mariadbd_safe --skip-grant-tables & - MariaDB kabuğuna bağlanın (şifre girmeden):
mysql -u root - Şifreyi sıfırlayın:
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'YeniGucluSifre!'; FLUSH PRIVILEGES; EXIT; - MariaDB güvenli mod sürecini sonlandırın (
fgve ardındanCtrl+Cveyakillall mariadbd_safe). - MariaDB servisini normal şekilde başlatın:
sudo systemctl start mariadb - Yeni şifrenizle root olarak bağlanmayı deneyin.
Q4: MariaDB yapılandırma dosyası nerede bulunur?
MariaDB’nin ana yapılandırma dosyaları genellikle /etc/mysql/ dizini altında veya /etc/mysql/mariadb.conf.d/ gibi alt dizinlerde bulunur. Ana yapılandırma dosyası genellikle my.cnf veya 50-server.cnf gibi isimlendirilir. Bu dosyalar, port numarası, bellek ayarları, loglama gibi çeşitli sunucu ayarlarını içerir.
Q5: Bir hata alırsam nereye bakmalıyım?
MariaDB ile ilgili bir sorunla karşılaştığınızda, aşağıdaki yerlere bakarak hata ayıklama yapabilirsiniz:
- Sistem günlükleri: MariaDB servisinin durumunu ve günlüklerini kontrol edin:
journalctl -xeu mariadb - MariaDB hata günlükleri: MariaDB’nin kendi hata günlükleri genellikle
/var/log/mysql/error.logveya/var/log/mariadb/error.logkonumunda bulunur. Bu dosya, veritabanı sunucusunun başlatılması veya çalışması sırasında karşılaşılan sorunlar hakkında ayrıntılı bilgi içerir.
