sunucuhataları
teknik çözüm merkezi
Ara Giriş Yap Üye Ol
🏠 Ana Sayfa 📚 Kurulum Rehberleri
Kategoriler
🌐 Web Sunucuları 🐧 İşletim Sistemleri 📦 Sanallaştırma & VPS 🖥️ Kontrol Panelleri 🔒 SSL & Güvenlik 📝 CMS & Uygulamalar 🗄️ Veritabanı 📧 Mail Sunucusu 🗨️ Forum ℹ️ Hakkımızda 📧 İletişim
Giriş Yap Üye Ol
Ana Sayfa Veritabanı MySQL Kurulumu MySQL 8.0 Kurulumu ve Güvenli Yapılandırma: Ubu...
🐬 MySQL Kurulumu

MySQL 8.0 Kurulumu ve Güvenli Yapılandırma: Ubuntu ve AlmaLinux

MySQL 8.0 kurulum ve güvenli yapılandırma rehberi: Ubuntu ve AlmaLinux üzerinde kurulum, kullanıcı yönetimi, uzak bağlantı ve my.cnf.

📅 14 Şubat 2025 👁 43 görüntülenme ⏱ 5 dk okuma
𝕏 Paylaş
📋 İçindekiler göster/gizle

MySQL Nedir?

MySQL, Oracle Corporation tarafından geliştirilen dünyada en yaygın kullanılan açık kaynaklı ilişkisel veritabanı yönetim sistemidir (RDBMS). 1995 yılında Michael Widenius ve David Axmark tarafından başlatılan proje, bugün internet altyapısının temel taşlarından biri haline gelmiştir. Facebook, Twitter, YouTube, Wikipedia ve WordPress gibi dev platformlar MySQL'i tercih etmektedir.

MySQL 8.0, 2018'de GA olarak yayımlanmış ve 5.7 sürümüne kıyasla ciddi iyileştirmeler getirmiştir. JSON veri tipi, pencere fonksiyonları (window functions), ortak tablo ifadeleri (CTE), gelişmiş UTF-8 desteği (utf8mb4 varsayılan), rol tabanlı erişim denetimi ve atomik DDL işlemleri MySQL 8.0 ile gelen başlıca yenilikler arasındadır. Ayrıca sorgu optimizasyon motoru yeniden yazılmış ve performans önemli ölçüde artırılmıştır.

MySQL, InnoDB depolama motoru üzerinde ACID uyumlu işlemler, yabancı anahtar kısıtlamaları, tam metin arama, replikasyon ve cluster gibi kurumsal özellikleri destekler. Topluluk (Community) sürümü GPL lisansıyla ücretsizdir; ticari destek gerektiren kurumlar için Enterprise sürümü mevcuttur.

Temel Özellikler

  • InnoDB Depolama Motoru: ACID uyumlu, satır düzeyinde kilitleme ve yabancı anahtar desteği.
  • Yüksek Performans: Gelişmiş sorgu optimizatörü ve indeks kullanımı.
  • Replikasyon: Master-slave, GTID tabanlı ve Grup replikasyonu.
  • JSON Desteği: Yarı yapılandırılmış veri depolama ve sorgulama.
  • Tam Metin Arama: InnoDB ile FULLTEXT indeks desteği.
  • Rol Tabanlı Erişim: Kullanıcı rollerini merkezi yönetim.
  • Şifreleme: Veri-in-transit (TLS) ve veri-at-rest şifreleme.

Sistem Gereksinimleri

  • CPU: 64-bit mimarisi zorunlu
  • RAM: 1 GB minimum (üretim için 4 GB+ önerilir)
  • Disk: 5 GB minimum (veriler için ek alan gerekli)

İşletim Sistemine Göre Kurulum

🟠 Ubuntu 22.04 Üzerinde MySQL 8.0 Kurulumu

1. Sistemi Güncelleyin

sudo apt update && sudo apt upgrade -y

2. MySQL Server'ı Kurun

sudo apt install mysql-server -y

3. MySQL Servisini Başlatın

sudo systemctl start mysql
sudo systemctl enable mysql
sudo systemctl status mysql

4. Sürümü Doğrulayın

mysql --version

🔵 AlmaLinux 9 Üzerinde MySQL 8.0 Kurulumu

1. MySQL Resmi Deposunu Ekleyin

sudo dnf install -y https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm

2. GPG Anahtarını İçe Aktarın

sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023

3. MySQL 8.0'ı Kurun

sudo dnf install -y mysql-community-server

4. Servisi Başlatın ve Aktifleştirin

sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo systemctl status mysqld

5. Geçici Parolayı Bulun

sudo grep 'temporary password' /var/log/mysqld.log

Güvenli Yapılandırma: mysql_secure_installation

Ubuntu 22.04 İçin

sudo mysql_secure_installation

Sihirbaz şu adımları tamamlar:

  • VALIDATE PASSWORD bileşenini aktifleştirme (önerilir)
  • Root parolası belirleme
  • Anonim kullanıcıları kaldırma
  • Root'un uzak bağlantısını kısıtlama
  • Test veritabanını kaldırma
  • Yetki tablolarını yenileme

AlmaLinux İçin

mysql -u root -p  # Geçici parolayla giriş yapın
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YeniGucluParola123!';
FLUSH PRIVILEGES;
sudo mysql_secure_installation

Kullanıcı ve Veritabanı Yönetimi

Yeni Veritabanı ve Kullanıcı Oluşturma

-- Veritabanı oluştur
CREATE DATABASE myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- Kullanıcı oluştur (yalnızca localhost erişimi)
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'GucluParola123!';
GRANT ALL PRIVILEGES ON myapp.* TO 'myuser'@'localhost';

-- Uzak erişim için (belirli IP'den)
CREATE USER 'myuser'@'10.0.0.5' IDENTIFIED BY 'GucluParola123!';
GRANT ALL PRIVILEGES ON myapp.* TO 'myuser'@'10.0.0.5';

FLUSH PRIVILEGES;

-- Kullanıcı yetkilerini görüntüle
SHOW GRANTS FOR 'myuser'@'localhost';

Uzak Bağlantıyı Aktifleştirme

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

bind-address satırını düzenleyin:

bind-address = 0.0.0.0
sudo systemctl restart mysql

# UFW'de portu açın (Ubuntu)
sudo ufw allow from 10.0.0.5 to any port 3306

# firewalld ile (AlmaLinux)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.5" port protocol="tcp" port="3306" accept'
sudo firewall-cmd --reload

my.cnf Temel Performans Optimizasyonu

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
# InnoDB yapılandırması
innodb_buffer_pool_size = 1G        # RAM'in %50-70'i
innodb_buffer_pool_instances = 2
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2  # Performans/güvenlik dengesi
innodb_flush_method = O_DIRECT

# Bağlantı ayarları
max_connections = 150
wait_timeout = 600
interactive_timeout = 600

# Sorgu önbelleği (MySQL 8.0'da kaldırıldı)
# Bunun yerine ProxySQL veya uygulama seviyesi önbellekleme kullanın

# Log ayarları
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
sudo systemctl restart mysql

Sık Karşılaşılan Sorunlar

  • Access denied for user 'root'@'localhost': Ubuntu'da sudo mysql ile auth_socket eklentisi kullanılır. Parola ile giriş için: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'parola';
  • MySQL başlamıyor: sudo journalctl -xe -u mysql ile hata logunu inceleyin.
  • Disk alanı doldu: du -sh /var/lib/mysql/* ile büyük tabloları bulun ve binary logları temizleyin.
  • Too many connections: max_connections değerini artırın veya bağlantı havuzu kullanın.

İlgili Makaleler

🤔 Bu kurulumda sorun mu yaşıyorsunuz?

Hata mesajınızı kopyalayıp foruma konu açın. Topluluğumuz size özel durumunuza göre yardımcı olacaktır.

🗨️ Foruma Katıl & Yardım Al
Etiketler: #mysql #ubuntu #almalinux #veritabani #mariadb

Yorumlar

Henüz yorum yok. İlk yorumu siz yapın!

Yorum Yap

Yorumunuz onaylandıktan sonra yayınlanır.