MySQL Loglama
Yazıda MySQL hatalarını, yavaş sorgularını ve diğer tüm sorguları kayıt altına almak için kullanılan loglama ile ilgili bilgiler yer almaktadır.
MySQL ile proje geliştirirken oluşabilecek hatalar, yapılan işlem ve performans sorunlarıyla ilgili bilgi almak için günlük dosyaları veya log dosyaları olarak adlandırılan dosyalar kullanılır.
MySQL ile ilgili sorunlar için aşağıdaki 3 log dosyasına bakmak yeterli olacaktır.
Hata logları – Sunucu çalışırken veya başlatırken oluşan hatalarla ilgili bilgiler yer alır.
Yavaş sorgu logları – Yavaş veya çalışma süresi uzun olan sorgularla ilgili bilgiler yer alır.
Tüm sorgu logları – Çalıştırılan tüm sorgular hakkında bilgi verir.
Tüm sorgu logları SQL komutlarını gizleyen PHP PDO, C# EntityFramework, WordPress, ORM araçları gibi uygulamalarda çalışan komutları izlemek için kullanılır.
MySQL loglama değerleri ile ilgili bilgiye aşağıdaki SQL komutu ile ulaşılır.
SHOW VARIABLES LIKE '%log%';
Komut sonuç olarak MySQL ile ilgili log ayarlarını ve değerlerini MySQL sürümüne göre listeleyecektir.
MySQL hata logları log_error ile belirtilen dosyaya kaydedilir.
Benzer şekilde yavaş çalışan sorgu logları slow_query_log_file ile belirtilen dosyaya, tüm sorgu logları ise general_log_file ile belirtilen dosyaya kaydedilir.
Yavaş sorgu logları ve tüm sorgu logları varsayılan olarak etkin değildir.
MySQL çalışma zamanında loglama kayıtları ile ilgili değişiklik yapmaya izin verir.
Loglama kayıtları ile ilgili bilgiyi çalışma zamanında değiştirmek için aşağıdaki komut kullanılır.
SET GLOBAL LOG_ADI = LOG_DEGERI;
Yavaş sorgu logları ve tüm sorgu loglarını aktif etmek için aşağıdaki komutlar kullanılır.
SET GLOBAL general_log = 'ON';
SET GLOBAL slow_query_log = 'ON';
Benzer şekilde devre dışı bırakmak için de aşağıdaki komutlar kullanılır.
SET GLOBAL general_log = 'OFF';
SET GLOBAL slow_query_log = 'OFF';
Komutu kullanarak log dosya yolunu ve diğer ayarları da değiştirilebilir.
Ancak değişiklik MySQL yeniden başlatıldığında varsayılan haline gelecektir.
Değişikliklerin kalıcı olarak saklanması için işletim sistemine göre my.ini veya my.cnf dosyalarının düzenlenmesi gerekir.
Log kayıtları ile ilgili değişiklikler [mysqld] ile belirtilen bölüme yazılır.
Hata logları yolunu değiştirmek için
log_error = dosya-yolu.log
satırını ekleyin veya varsa isteğinize göre düzenleyin.
Yavaş çalışan sorgu loglarını aktif etmek ve dosya yolunu değiştirmek için
slow_query_log_file = dosya-yolu.log
slow_query_log = 1
satırını ekleyin veya varsa isteğinize göre düzenleyin.
Tüm sorgu loglarını aktif etmek ve dosya yolunu değiştirmek için
general_log_file = dosya-yolu.log
general_log = 1
satırını ekleyin veya varsa isteğinize göre düzenleyin.
Gerekli olan düzenlemeleri yaptıktan sonra ayarların aktif olması için MySQL sunucusunun yeniden başlatılması gerekir.
Hayırlı günler dilerim.