MySQL, veritabanı işlemlerini izlemek ve hataları tespit etmek için çeşitli log dosyaları sunar. Bu yazıda, MySQL’deki önemli log dosyalarını ve bu logların nasıl yönetileceğini ele alacağız.
#### 1. Yavaş Sorgu Logu (Slow Query Log)
Yavaş sorgu logu, belirli bir süreden daha uzun süren sorguları kaydeder. Bu log, performans sorunlarını tespit etmek için kullanışlıdır.
##### Yavaş Sorgu Logunu Ayarlama
Yavaş sorgu logunu etkinleştirmek ve log dosyasını belirlemek için aşağıdaki komutlar kullanılır:
“`sql
— Yavaş sorgu logunun aktif olup olmadığını kontrol et
SELECT @@slow_query_log;
— Yavaş sorgu log dosyasının yolunu görüntüle
SELECT @@slow_query_log_file;
— Log dosyasının bulunduğu dizini görüntüle
SELECT @@datadir;
— Yavaş sorgu logunu etkinleştir veya devre dışı bırak
SET GLOBAL slow_query_log = 1; — Etkinleştir
SET GLOBAL slow_query_log = 0; — Devre dışı bırak
“`
##### Yavaş Sorgu Süresini Ayarlama
Yavaş sorgu logunun hangi süreden daha uzun süren sorguları kaydedeceğini belirlemek için:
“`sql
— Mevcut yavaş sorgu süresini görüntüle
SELECT @@long_query_time;
— Yavaş sorgu süresini ayarla (örneğin, 2 saniye)
SET GLOBAL long_query_time = 2;
“`
#### 2. Genel Sorgu Logu (General Query Log)
Genel sorgu logu, tüm sorguları ve bağlantı bilgilerini kaydeder. Bu log, hata ayıklama için kullanışlıdır ancak performansı olumsuz etkileyebilir.
##### Genel Sorgu Logunu Ayarlama
Genel sorgu logunu etkinleştirmek ve log dosyasını belirlemek için:
“`sql
— Genel sorgu logunun aktif olup olmadığını kontrol et
SELECT @@general_log;
— Genel sorgu log dosyasının yolunu görüntüle
SELECT @@general_log_file;
— Genel sorgu logunu etkinleştir veya devre dışı bırak
SET GLOBAL general_log = 1; — Etkinleştir
SET GLOBAL general_log = 0; — Devre dışı bırak
“`
##### Log Dosyasının Yerini Değiştirme
Genel sorgu log dosyasının yerini değiştirmek için:
“`sql
SET GLOBAL general_log_file = ‘/path/to/new_log_file.log’;
“`
#### 3. Hata Logu (Error Log)
Hata logu, MySQL sunucusunun başlangıç ve durdurma bilgilerini, kritik hataları ve uyarıları kaydeder.
##### Hata Logunu Ayarlama
Hata logunun yolunu ve detay seviyesini ayarlamak için:
“`sql
— Hata log dosyasının yolunu görüntüle
SELECT @@log_error;
— Hata logunun detay seviyesini ayarla
SET GLOBAL log_warnings = 2; — Daha fazla detay için
“`
##### Hata Logunun Yerini Değiştirme
Hata log dosyasının yerini değiştirmek için MySQL yapılandırma dosyası (`my.cnf` veya `my.ini`) kullanılır:
“`ini
[mysqld]
log_error = /path/to/error.log
log_warnings = 2
“`
#### 4. Diğer Log Dosyaları
– **Binary Log (Binlog):** Replikasyon ve yedekleme için kullanılır. `log_bin_basename` değişkeni ile kontrol edilir.
– **Relay Log:** Replikasyon sırasında kullanılır.
– **InnoDB Redo Log:** InnoDB depolama motoru tarafından kullanılır ve `iblog*` dosyalarında saklanır.
#### Sonuç
MySQL’de log dosyaları, veritabanı işlemlerini izlemek, performans sorunlarını tespit etmek ve hataları ayıklamak için kritik öneme sahiptir. Yavaş sorgu logu, genel sorgu logu ve hata logu gibi loglar, veritabanı yönetimini daha etkili hale getirir. Bu logları doğru şekilde yapılandırarak, veritabanı performansını artırabilir ve olası sorunları önceden tespit edebilirsiniz. Bir sonraki yazıda görüşmek üzere!