Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

MySQL/MariaDB Log Dosyalarını (Error Log, General Log, Slow Log) Anlama ve Yönetme

codrix

Üye
Katılım
14 Mart 2026
Mesajlar
28
Merhaba arkadaşlar, bugün sizlere sunucu yönetiminde sıkça karşılaştığımız, sorun giderme ve optimizasyon için altın değerinde olan MySQL/MariaDB log dosyalarından bahsedeceğim. Bu logları doğru okuyup yönetebilirseniz, performans sorunlarını kökünden çözebilir, gizli hataları yakalayabilir ve veritabanınızın sağlığını sürekli takip edebilirsiniz. Gelin bu log türlerini tek tek inceleyelim.

🔍 Hangi Log Dosyaları Var ve Ne İşe Yarar?

Temel olarak üç önemli log türüyle çalışıyoruz. Her birinin yeri ve amacı farklıdır.

✅ Error Log (Hata Günlüğü)
Başlatma/duraklatma hataları, kritik sorunlar, çökme bilgileri ve uyarı mesajlarının yazıldığı yerdir. Sorun gidermede ilk bakılacak yerdir. Dosya yolu genellikle /var/log/mysql/error.log veya /var/log/mariadb/mariadb.log şeklindedir.

📝 General Query Log (Genel Sorgu Günlüğü)
Veritabanına yapılan TÜM bağlantıları ve çalıştırılan TÜM sorguları kaydeder. Çok detaylı olduğu için sürekli açık tutulmaz, performansı etkiler ve çok yer kaplar. Sadece belirli bir süre için, şüpheli bir durumu veya tüm sorguları izlemek gerektiğinde aktif edilir.

🐌 Slow Query Log (Yavaş Sorgu Günlüğü)
Performans optimizasyonunun kalbi burasıdır. Belirlediğiniz bir süreden (örn: 2 saniye) daha uzun süren sorguları buraya kaydeder. Hangi sorguların, neden yavaş çalıştığını analiz edip index ekleyerek veya sorguyu optimize ederek sunucu yükünü ciddi oranda düşürebilirsiniz.

⚠️ Log Konfigürasyonu ve Yönetimi

Bu logları yönetmek için ana konfigürasyon dosyasına (genellikle /etc/mysql/my.cnf veya /etc/my.cnf) müdahale ederiz. Benim sunucularda genelde kullandığım yöntem, ayarları bu dosyadan yapmaktır. Aşağıdaki ayarları [mysqld] bölümünün altına ekleyebilirsiniz.

INI:
# ERROR LOG AYARLARI
log_error = /var/log/mysql/error.log

# SLOW QUERY LOG AYARLARI
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2  # 2 saniyeden uzun sorgular kaydedilir.
log_queries_not_using_indexes = 1  # Index kullanmayan sorguları da logla (Dikkatli kullanın).

# GENERAL QUERY LOG AYARLARI (GEREKMEDİKÇE KAPALI TUTUN)
general_log = 0
general_log_file = /var/log/mysql/mysql-general.log

Ayarları değiştirdikten sonra MySQL/MariaDB servisini yeniden başlatmalısınız.

Bash:
sudo systemctl restart mysql  # veya mariadb

🔧 Log Dosyalarını Döndürme (Log Rotation)

Log dosyaları, özellikle General Log, çok hızlı büyüyebilir ve diskinizi doldurabilir. Bunu önlemek için logrotate kullanırız. Aşağıdaki gibi bir konfigürasyon dosyası (/etc/logrotate.d/mysql) oluşturabilirsiniz.

Kod:
/var/log/mysql/.log {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    notifempty
    create 640 mysql adm
    sharedscripts
    postrotate
        test -x /usr/bin/mysqladmin || exit 0
        MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
        $MYADMIN ping &>/dev/null && $MYADMIN flush-logs
    endscript
}

Bu ayar, logları günlük olarak döndürür, 7 günlük arşiv tutar ve sıkıştırır.

📊 Logları Analiz Etme

Error Log'u basitçe tail veya less komutuyla okuyabilirsiniz.

Bash:
sudo tail -f /var/log/mysql/error.log

Ancak Slow Query Log'u okumak için daha akıllı araçlar var. Benim en çok kullandığım araç mysqldumpslow aracıdır. Yavaş sorguları özetler ve sıralar.

Bash:
sudo mysqldumpslow /var/log/mysql/mysql-slow.log

Daha detaylı ve renkli analiz için pt-query-digest (Percona Toolkit) aracını şiddetle tavsiye ederim. Bu araç, yavaş sorgu log'unuzu adeta bir rapora dönüştürür.

Bash:
sudo pt-query-digest /var/log/mysql/mysql-slow.log

Sonuç olarak, bu logları doğru yapılandırmak ve düzenli olarak kontrol etmek, proaktif bir sistem yöneticisinin en önemli görevlerinden biridir. Siz bu log yönetimini kendi sunucularınızda nasıl yapıyorsunuz? Farklı kullandığınız araçlar veya yöntemler var mı? Ya da bu konuyla ilgili bir sorusu olan arkadaşlar aşağıya yazsın, birlikte tartışalım.
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri