RedHat8/CentOS8 üzerinde MySQL database server kurulumu

Merhabalar,

Bu makalemde, varsayılan AppStream deposunu kullanarak, en son MySQL versiyonu olan MySQL 8.0 database’in, CentOS 8 ve RHEL 8 üzerine nasıl yükleyip, konfigüre edileceğinize dair bilgiler aktaracağım.

MySQL, Oracle şirketi tarafından geliştirilen açık kaynaklı bir ilişkisel veritabanı yönetim sistemidir. Kaynak kodu GNU Genel Kamu Lisansı altında yayınlanır ve tescilli olan ve ek işlevler sunan ücretli bir sürümü de vardır. MySQL, LAMP ve LEMP yığınlarının önemli bir bileşenidir. Birçok uygulama, MySQL veya diğer veritabanı sistemlerini kullanmaktadır. MySQL de en popüler, ücretsiz ve açık kaynaklı ilişkisel veritabanı yönetim platformu olarak sıkça kullanılmaktadır.

En son MySQL 8.0 sürümü, CentOS 8 ve RHEL 8 sistemlerinde varsayılan olarak etkinleştirilmiş MySQL modülü kullanılarak yüklenebilir. Tek bir komutla, hiçbir ek repository ihtiyacı durmadan kurulum yapılabiliyor.

CentOS8 ve RHEL 8 üzerinde MySQL 8 kurulumu

MySQL 8.0’ın en son sürümü, yum ya da dnf komutları ile CentOS 8 ve RHEL 8 sistemlerindeki, varsayılan uygulama yükleme havuzundan yüklenebilir. Ben yükleme için dnf ile başlayan komutu kullanacağım. Siz de istediğiniz komutu kullanarak kurulum yapabilirsiniz.

dnf install @mysql -y
yum install @mysql -y

Kurulum işlemi bu kadar.

MySQL servislerini ayarlama

MySQL kurulumu tamamlandığında,

  • MySQL servisini başlatıyoruz
  • Sistem açılışında otomatik olarak başlamasını sağlıyoruz
  • Servisin durumunu doğruluyoruz

systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld

MySQL versiyonunu görmek için aşağıdaki komutu kullanabiliriz. Bu komut sonrası, size soracağı root password, default olarak boş geldiği için, sadece enter ile geçebiliyorsunuz.

mysqladmin -u root -p version

MySQL güvenlik ayarlarının yapılması

Bir database kurulduğunda, hiçbirşeyi default ayarlarla bırakmamamız gerekiyor. Dolayısıyla güvenlik seçeneklerini gözden geçirmemiz gerekiyor.

Bu adımda, database sunucumuz için bazı güvenlik ayarlarını yapacağız. Yapacağımız işlemler şunlar olacak:

  • DB root kullanıcısının parolasını ayarlayacağız,
  • Anonim kullanıcıları sileceğiz,
  • DB root kullanıcısına, uzaktan oturum açmayı yasaklayacağız,
  • Test database’ini sileceğiz,
  • Privilege (ayrıcalık) reload edeceğiz.

mysql_secure_installation

Öncelikli olarak, database root şifresinin karakteristik özelliklerini belirlememiz istenecek. Büyük-küçük-özel karakter-karakter uzunluğu gibi özellikleri belirlememiz için 3 seçenek vardır : 0=LOW, 1=MEDIUM 2=HIGH. Hangi durumu seçtiğinizde, password’ün hangi özelliklerde olduğunun açıklaması da yapılmaktadır.

Ben şimdilik 0 seçerek devam edeceğim, fakat sizler kendi ortamınız için kesinlikle güçlü parolalar seçmelisiniz.

Yeni password, yeterince kuvvetli bulunmadığı için kullanmakta emin miyiz diye sorulmakta. Y ile devam ediyoruz.

Bize aşağıdaki gibi güvenlik düzenlemeleri sorulacaktır. Cevaplarımız da aşağıdaki gibidir.

İşlem sonrası komut satırına düşülmüş olur.

MySQL database, db kullanıcı oluşturma ve yetkilendirme

MySQL kurulumu güvenli hale getirildikten sonra, MySQL komut satırına giriş yaparak, yeni database’ler ve kullanıcılar oluşturmaya başlayabiliriz.

Örnek olarak, yusuf adında yeni bir kullanıcı oluşturalım ve şifre olarak Qwer1234 belirleyelim. Sonra da yeni oluşturduğumuz database üzerinde, yusuf kullanıcısına tüm yetkileri verelim. Şifreyi tek tırnak işaretiyle yazmamız gerekiyor.

MySQL database ve kullanıcı kontrolleri

Eğer oluşturduğunuz database veya database kullanıcılarını görmek isterseniz, aşağıdaki komutları kullanabilirsiniz.

MySQL database listeleme:

mysql> show databases;

MySQL database kullanıcılarını listeleme;

mysql> select host, user from mysql.user;

Kullanıcıların, tüm özelliklerini görmek isterseniz aşağıdaki komutu kullanabilirsiniz.

mysql> select * from mysql.user;

Ya da bazı seçenekleri belirtip sadece o özelliklerini görebilirsiniz.

Kullanıcılar için, kullanılabilecek tüm seçilebilir özellikleri görmek için aşağıdaki komutu kullanabiliriz.

mysql> desc mysql.user;

field sütunundaki filtreleme seçeneklerini kullanarak, sadece istediğiniz kullanıcı bilgilerine ulaşabilirsiniz.

Firewall üzerinde MySQL servisi ayarları

Eğer erişimde sorunlar yaşıyorsanız, local firewall üzerinde birkaç ayar yapmanız gerekebilir. Öncelikle local firewall servisinizin çalışıp çalışmadığını kontrol edin.

systemctl status firewalld

Mysql servisine izin vermek için aşağıdaki komutları kullanıyoruz.

firewall-cmd –permanent –add-service=mysql
firewall-cmd –reload

Tüm kurulum işlemlerimiz bu kadar. Artık ilgili uygulama yöneticilerine, oluşturduğunuz database ismini ve kullanıcı bilgilerini verebilirsiniz.

Yararlı olması dileğiyle.

Yusuf İşleyen