MariaDB Nedir ve Neden Debian 9’da Kullanmalısınız?
MariaDB, MySQL’in topluluk tarafından geliştirilen, açık kaynaklı ve oldukça uyumlu bir fork’udur. Performansı, güvenliği ve yeni nesil özellikleriyle öne çıkar. Debian 9 (Stretch) gibi kararlı ve güvenilir bir işletim sistemi üzerinde MariaDB kullanmak, web uygulamaları, veri tabanı destekli sistemler ve çeşitli sunucu hizmetleri için sağlam bir temel oluşturur. Debian 9, uzun süreli destek (LTS) sunan bir dağıtım olduğu için, bu rehber eski ancak hala kullanılan sistemler için geçerli ve önemlidir.
MariaDB Kurulumuna Başlamadan Önce
MariaDB’yi Debian 9 sisteminize kurmaya başlamadan önce, bazı ön hazırlık adımlarını tamamlamanız gerekmektedir. Bu adımlar, sorunsuz bir kurulum süreci ve güvenli bir çalışma ortamı sağlamak için kritik öneme sahiptir.
Sistem Güncellemesi ve Ön Koşullar
Öncelikle, sisteminizin güncel olduğundan emin olun. Bu, hem güvenlik yamalarını uygulamanızı hem de mevcut paketlerin en son kararlı sürümlerini kullanmanızı sağlar. Ayrıca, kurulumu gerçekleştirmek için root ayrıcalıklarına sahip olmanız veya sudo kullanabilen bir kullanıcı olmanız gerekmektedir. İnternet bağlantınızın aktif olduğundan da emin olun.
sudo apt update
sudo apt upgrade -y
Bu komutlar, paket listelerinizi günceller ve mevcut tüm paketleri yükseltir. -y parametresi, tüm sorulara otomatik olarak “evet” yanıtı vermenizi sağlar, bu da uzun süreli güncellemelerde işinize yarar.
Debian Sürümünü Kontrol Etme
Kurulum talimatlarının doğru olduğundan emin olmak için sisteminizin Debian 9 (Stretch) olduğundan emin olmak iyi bir uygulamadır. Bunu aşağıdaki komutlarla kontrol edebilirsiniz:
lsb_release -a
veya
cat /etc/os-release
Çıktıda “Debian 9” veya “Stretch” ifadelerini görmelisiniz.
MariaDB Sunucusunu Kurma
MariaDB’yi Debian 9’a kurmanın iki ana yolu vardır: Debian’ın varsayılan depolarından veya MariaDB’nin resmi depolarından. Genellikle, Debian’ın varsayılan depoları kararlı ve iyi test edilmiş bir sürüm sunar. Ancak, daha yeni özelliklere veya belirli bir MariaDB sürümüne ihtiyacınız varsa, resmi depoları kullanmak daha uygun olabilir.
Varsayılan Debian Depolarından Kurulum
Debian 9’un varsayılan depoları, genellikle MariaDB’nin kararlı bir sürümünü (genellikle MariaDB 10.1 veya 10.3) içerir. Bu yöntem, çoğu kullanım durumu için yeterince iyi ve en kolay kurulum yöntemidir.
sudo apt install mariadb-server mariadb-client -y
mariadb-server: MariaDB veritabanı sunucusunun kendisini kurar.mariadb-client: Veritabanı ile etkileşim kurmak için gerekli olan istemci araçlarını (örneğin,mysqlkomut satırı aracı) kurar.
Kurulum tamamlandıktan sonra, MariaDB hizmetinin çalışıp çalışmadığını kontrol edebilirsiniz:
systemctl status mariadb
Çıktıda “active (running)” ifadesini görmeniz, MariaDB’nin başarıyla çalıştığı anlamına gelir.
MariaDB Resmi Depolarından Kurulum (Gelişmiş)
Eğer Debian 9’da MariaDB’nin daha güncel bir sürümünü (örneğin 10.4 veya 10.5) kullanmanız gerekiyorsa, MariaDB’nin kendi resmi depolarını eklemeniz gerekir. Bu yöntem, Debian’ın varsayılan depolarından daha yeni sürümler sunar.
Öncelikle, MariaDB paketlerinin orijinalliğini doğrulamak için GPG anahtarını eklemelisiniz:
sudo apt-get install software-properties-common dirmngr ca-certificates apt-transport-https -y
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD10C
Ardından, MariaDB deposunu sisteminize ekleyin. Debian 9’un kod adı “stretch” olduğu için, depo URL’sinde bu adı kullanmalıyız. Bu örnekte MariaDB 10.3’ü ekleyeceğiz, çünkü bu sürüm Debian 9 ile iyi uyumludur. Daha yeni sürümler için (örneğin 10.4 veya 10.5), ilgili sürüm numarasını değiştirebilirsiniz, ancak uyumluluğu kontrol etmeniz önemlidir.
sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.mariadb.org/repo/10.3/debian stretch main'
Depoyu ekledikten sonra, paket listelerinizi güncelleyin ve MariaDB’yi kurun:
sudo apt update
sudo apt install mariadb-server mariadb-client -y
Kurulumun ardından yine systemctl status mariadb komutuyla hizmetin durumunu kontrol edebilirsiniz.
MariaDB Güvenlik Ayarları ve Temel Yapılandırma
MariaDB’yi kurduktan sonra yapmanız gereken en önemli adımlardan biri, veritabanı sunucunuzu güvence altına almaktır. MariaDB, bu işlemi kolaylaştırmak için bir güvenlik betiği sağlar.
mysql_secure_installation Kullanımı
Bu betik, veritabanı sunucunuz için temel güvenlik iyileştirmelerini yapmanıza yardımcı olur:
sudo mysql_secure_installation
Bu komutu çalıştırdığınızda aşağıdaki sorularla karşılaşacaksınız:
- Enter current password for root (enter for none): İlk kurulumda root şifresi olmadığı için doğrudan Enter tuşuna basabilirsiniz.
- Set root password? [Y/n]: Root kullanıcısı için güçlü bir şifre belirlemenizi kesinlikle öneririm. ‘Y’ yazıp Enter’a basın ve şifrenizi iki kez girin.
- Remove anonymous users? [Y/n]: Anonim kullanıcılar test amaçlıdır ve üretim ortamında güvenlik riski oluşturur. ‘Y’ yazarak bunları kaldırın.
- Disallow root login remotely? [Y/n]: Root kullanıcısının yalnızca yerel olarak bağlanmasına izin vermek en iyi güvenlik uygulamasıdır. ‘Y’ yazarak uzaktan root erişimini devre dışı bırakın.
- Remove test database and access to it? [Y/n]: Test veritabanı, güvenlik açıkları yaratabilecek gereksiz bir kaynaktır. ‘Y’ yazarak kaldırın.
- Reload privilege tables now? [Y/n]: Yapılan değişikliklerin hemen etkinleşmesi için ‘Y’ yazın.
Bu adımları tamamladıktan sonra MariaDB sunucunuzun temel güvenlik ayarları yapılmış olacaktır.
Yeni Veritabanı ve Kullanıcı Oluşturma
Veritabanı uygulamalarınız için doğrudan root kullanıcısını kullanmak yerine, her uygulama için ayrı bir veritabanı ve kullanıcı oluşturmak iyi bir güvenlik ve yönetim uygulamasıdır. Root kullanıcısı ile MariaDB’ye bağlanın:
sudo mysql -u root -p
İstendiğinde, mysql_secure_installation sırasında belirlediğiniz root şifresini girin.
Şimdi bir veritabanı ve kullanıcı oluşturalım:
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'GucluSifreBuraya!';
GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
mydatabase: Oluşturacağınız veritabanının adı.myuser: Oluşturacağınız kullanıcının adı.localhost: Bu kullanıcının yalnızca yerel makineden bağlanabileceğini belirtir. Uzaktan erişim için ‘myuser’@’%’ kullanabilirsiniz, ancak bu güvenlik riski taşır ve dikkatli yapılandırılmalıdır.GucluSifreBuraya!: Kullanıcı için belirlediğiniz güçlü şifre.FLUSH PRIVILEGES;: Ayrıcalık tablolarını yenileyerek değişikliklerin hemen uygulanmasını sağlar.
Yeni kullanıcı ile bağlanarak test edebilirsiniz:
mysql -u myuser -p
İstendiğinde myuser için belirlediğiniz şifreyi girin. Başarılı bir şekilde bağlanırsanız, yeni kullanıcınızın çalıştığını doğrulamış olursunuz.
MariaDB Yönetimi ve Ek İpuçları
MariaDB’yi kurduktan ve güvence altına aldıktan sonra, sunucuyu nasıl yöneteceğinizi ve performansını nasıl optimize edeceğinizi bilmek önemlidir.
MariaDB Hizmetini Yönetme
systemctl komutu ile MariaDB hizmetini kolayca yönetebilirsiniz:
# MariaDB hizmetini başlatma
sudo systemctl start mariadb
MariaDB hizmetini durdurma
sudo systemctl stop mariadb
MariaDB hizmetini yeniden başlatma
sudo systemctl restart mariadb
MariaDB hizmetinin durumunu kontrol etme
sudo systemctl status mariadb
Sistem başlangıcında MariaDB'nin otomatik başlamasını sağlama
sudo systemctl enable mariadb
Sistem başlangıcında MariaDB'nin otomatik başlamasını devre dışı bırakma
sudo systemctl disable mariadb
MariaDB Yapılandırma Dosyaları
MariaDB’nin ana yapılandırma dosyası genellikle /etc/mysql/my.cnf veya /etc/mysql/mariadb.conf.d/50-server.cnf gibi bir konumda bulunur. Bu dosyalar, veritabanı sunucusunun davranışını ve performansını etkileyen çeşitli ayarları içerir.
Örneğin, uzaktan erişimi etkinleştirmek isterseniz (güvenlik duvarı kurallarını da ayarlamanız gerektiğini unutmayın), bind-address satırını bulup yorum satırı yapmanız veya sunucunuzun IP adresine ayarlamanız gerekebilir:
[mysqld]
#bind-address = 127.0.0.1 # Bu satırı yorum satırı yapın veya sunucunuzun IP adresine ayarlayın
bind-address = 0.0.0.0 # Tüm arayüzlerden dinlemek için (dikkatli kullanın!)
Bu değişiklikleri yaptıktan sonra MariaDB hizmetini yeniden başlatmayı unutmayın: sudo systemctl restart mariadb.
Yedekleme Stratejileri
Verilerinizin güvenliği için düzenli yedeklemeler yapmak hayati önem taşır. mysqldump aracı, MariaDB veritabanlarınızı yedeklemek için güçlü bir araçtır:
# Belirli bir veritabanını yedekleme
sudo mysqldump -u root -p mydatabase > mydatabase_yedek.sql
Tüm veritabanlarını yedekleme
sudo mysqldump -u root -p --all-databases > tum_veritabanlari_yedek.sql
Yedekleri güvenli bir yerde sakladığınızdan ve periyodik olarak geri yükleme testleri yaptığınızdan emin olun.
Sonuç
Bu rehberde, Debian 9 sisteminize MariaDB’yi nasıl kuracağınızı, temel güvenlik ayarlarını nasıl yapacağınızı ve veritabanı sunucunuzu nasıl yöneteceğinizi ayrıntılı olarak ele aldık. MariaDB’nin sağlam bir veritabanı çözümü olduğunu ve doğru yapılandırma ile uygulamalarınız için güvenilir bir temel oluşturduğunu unutmayın. Her zaman en iyi güvenlik uygulamalarını takip edin ve verilerinizi düzenli olarak yedekleyin.
Sıkça Sorulan Sorular (SSS)
Q1: MariaDB ve MySQL arasındaki fark nedir?
A1: MariaDB, MySQL’in açık kaynaklı bir fork’udur. Oracle’ın MySQL’i satın almasından sonra topluluk tarafından geliştirilmeye devam etmiştir. Temel olarak uyumlu olsalar da, MariaDB genellikle daha fazla depolama motoru seçeneği (örneğin Aria, XtraDB), performans iyileştirmeleri ve yeni özellikler sunar. Çoğu uygulama için MySQL ile doğrudan değiştirilebilir.
Q2: Root şifresini unutursam ne yapmalıyım?
A2: MariaDB root şifresini unutursanız, MariaDB hizmetini güvenli modda (şifresiz erişimle) başlatarak şifreyi sıfırlayabilirsiniz. Bu işlem genellikle MariaDB hizmetini durdurmayı, yapılandırma dosyasını düzenleyerek skip-grant-tables eklemeyi, hizmeti yeniden başlatmayı, şifreyi değiştirmeyi ve ardından yapılandırma dosyasını eski haline getirip hizmeti tekrar başlatmayı içerir.
Q3: Uzaktan erişimi nasıl etkinleştiririm?
A3: Uzaktan erişimi etkinleştirmek için iki ana adım vardır:
- MariaDB yapılandırma dosyasında (örn.
/etc/mysql/mariadb.conf.d/50-server.cnf)bind-address = 127.0.0.1satırınıbind-address = 0.0.0.0olarak değiştirin veya yorum satırı yapın. Ardından MariaDB hizmetini yeniden başlatın. - Uzak bir IP adresinden bağlanabilen bir MariaDB kullanıcısı oluşturun veya mevcut bir kullanıcının ayrıcalıklarını güncelleyin (örn.
GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'%' IDENTIFIED BY 'password';). - Sunucunuzun güvenlik duvarında (örn. UFW veya iptables) MariaDB’nin varsayılan portu olan 3306’ya gelen bağlantılara izin verin.
Q4: MariaDB hangi portu kullanır?
A4: MariaDB, varsayılan olarak TCP portu 3306‘yı kullanır.
Q5: Debian 9’da MariaDB’nin hangi sürümünü kurdum?
A5: Kurduğunuz MariaDB sürümünü kontrol etmek için MariaDB istemcisine bağlanıp aşağıdaki komutu çalıştırabilirsiniz:
SELECT VERSION();
Veya komut satırından:
mysql -V
Bu komutlar, MariaDB sunucusunun veya istemcisinin sürüm bilgilerini gösterecektir.