- Error Log : Mysqld başlatılırken çalışırken veya dururken meydana gelen hatalar
- General Query Log: Kurulan client bağlantıları ve clienttan gelen sorgular(show, select)
- Binary Log : Delete, update, create, drop gibi veriyi değiştiren sorgular
- Relay Log : Replication Master Server tarafından gönderilen veriyi değiştiren sorgular
- Slow Query Log: Çalışması long_query_time değerinden uzun süren sorgular
- DDL log : DDL sorgularınca gerçekleştirilen Metadata işlemleri
Gösterilen satırlardan # işareti kaldırılarak aktif hale getirilmelidir.
Aktifleştirme sonrası mysql servisine restart atılması gereklidir. Sonrasında gösterilen dizinlere gidilerek Mysql Server'a yapılan erişimler ve sorgularla ilgili logların düştüğünü görebiliriz.
General Query loglarında client tarafından gönderilen genel sorgular bulunur.
Binary Loglarda ise veriler üzerinde yapılan değişiklikler yazılır. Binary logları okuyabilmek için
mysql ile gelen mysqlbinlog aracı kullanılabilir. Mysqlbinlog --parameters [file_name]
Uzak bağlantıyla yapılan bir erişim aşağıdaki görüldüğü gibi 'General Query Log' dosyasına aşağıdaki gibi bir kayıtla görüntülenmektedir.
Konfigürasyon dosyası üzerinde yaptığımız bu değişiklikleri, eğer server'a erişimimiz yok ise, mysql konsolu aracılığıyla da yapabiliriz. Buna benzer konfigürasyonlar için Mysql içerisinde değişkenler(VARIABLES) oluşturulmuştur. Bu değişkenler SHOW VARIABLES; komutu ile
incelenebilir.
NOT : Logların kayıt edilebileceği muhtemel hedefler log dosyaları veya mysql içerisinde general_log, slow_log tabloları olabilir.
--log_output: değişkenine ile FILE, TABLE, NONE seçeneklerini atayabiliriz.FILE ve TABLE birlikte de seçilebilir. Default seçeneği FILE'dır.
--general_log : değişkeni ile general query loglanmasını aktif veya pasif hale getirir.
--general_log_file : ile kayıt dosyalarının yerini belirleriz.
--slow_query ve --slow_query_log değişkenleride benzer mantıkta çalışır.
--sql_log_off değişkeni ile güncel bağlantı için loglama kapatılabilir(ON) veya açılabilir(OFF).
--log-error[=filename] değişkeni ile error loglarının kayıt edileceği dosya belirlenebilir.
--log_error_verbosity değişkeni error loglarının ayrıntı seviyesini belirlemede kullanılır. 1 (Errors only), 2 (Errors and Warnings) , 3 (Error,Warnings and Notes)
--log_syslog değişkeni ile error loglarının sysloga gönderilmesi aktif edilir. (ON)
--log_syslog_facility değişkeni ile sysloga gönderilen error loglar için facility belirlenebilir.
--expire_log_days ve max_binlog_size değişkenleri binary loglar için max dosya boyutu ve tutulma süresi gibi değişkenleri içerir.
NOT : Bu değişkenlere değer ataması yapmak için mysql konsolunda
SET [GLOBAL] VARIABLE = VALUE ; şeklinde komut çalıştırılır. Örneğin
SET GLOBAL general_log = 'ON';
SET GLOBAL slow_query_log = 'ON';
Kayıtların dosya yerine tabloda tutulması için değişkene atama yapalım.
Log kayıtlarının dosya yerine tabloda tutulmasının avantajları ;
- Log girdileri için standart format olması , bu formatları görüntülemek için şu komutlar çalıştırılabilir.
SHOW CREATE TABLE mysql.slow_log;
- Log kayıtlarına SQL sorguları aracılığıyla da ulaşma imkanı doğar. Belirli kriterleri listeleme gibi kolaylıklar oluşur. Örneğin sadece belirli bir client için log içeriği sorgulayabiliriz. Bu sorgulama imkanları bize dosya taramasından daha kullanışlıdır.
- Doğrudan db server hostunda dosya sistemine erişim sağlamak yerine bağlantı kurabilen tüm clientlar (log tablolarına erişim izinleri varsa) sql konsolundan erişim sağlayabilirler.
Bu makale İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü öğrencisi stajyerimiz Cemal Türkoğlu tarafından geliştirilmiştir.