Optimizasyon kullanabilen sorguları tanımlamak için sunucumuzda yavaş sorgu günlüğünü etkinleştirmeye çalışıyorum. Kulağa yeterince basit geliyor, ancak dosyama yazılmıyor. Hiçbir hata ya da benzeri bir şey olsun, sadece yavaş sorguları günlüğü gibi görünmüyor. Benim yapılandırma değiştikten sonra mysql yeniden başlatmayı hatırladım.
MySQL Ver 5.1.61 kullanıyorum. İşte my.cnf içinde ne var:
slow-query-log=1
slow-query-log-file=/var/logs/my.slow.log
long_query_time=1
/var/logs/my.slow.log dosyasının sahibi olarak mysql var, ayrıca hata ayıklama amacıyla günlük dosyasında herkese okuma / yazma verdim.
Ben sadece çalışıp çalışmadığını görmek istiyorum gibi yukarıda 1 olarak ayarlanmış long_query_time var. Daha düşük ayarlamayı denedim (örn. 0.3) ama yine de günlüğe hiçbir şey almıyorum. Uygulamamın çalıştığı sorguların 1 saniyeden uzun sürdüğünü biliyorum ve ayrıca SELECT sleep(10);
test için terminalde kasıtlı olarak günlük sorguları ( ) çalıştırdım ve günlük hala boş.
Dokümanlara baktım, bunun işe yaradığını görebildiğim kadarıyla. Ne yaptığım konusunda herhangi bir öneriniz olan var mı? Herhangi bir tavsiye mutluluk duyacağız, çok teşekkürler!
Düzenleme: Yorumlarda istendiği gibi sorguyu çalıştırdı:
`SELECT variable_value FROM information_schema.global_variables WHERE variable_name IN ('slow_query_log','slow_query_log_file','long_query_time');`
Sonuç:
10.0000000
/var/run/mysqld/mysqld-slow.log
OFF
Açıkçası, bunların varsayılan değerler olduğuna inandığım için yapılandırma değişikliklerim dikkate alınmıyor. Ben değiştirdiğim my.cnf dosyası sanki geçersiz bir değer koymak mysql yeniden başlatmada hata olacak gibi ayrıştırılıyor eminim. Burada neler olabilir?
Başka Bir Düzenleme:
@RolandoMySQLDBA'nın tavsiyelerini aldıktan ve yavaş sorgu yapılandırma satırlarımı [mysqld]
ayarlarımın altına taşıdıktan sonra kaydediliyor gibi görünüyor. Şimdi yukarıdaki variable_value sorgusunun sonucu:
1.0000000
/var/logs/my.slow.log
ON
Ancak hala my.slow.log dosyasının yazılmakta olduğunu görmüyorum. Ben dosya mysql ait olduğu gibi bir izin sorunu olduğunu sanmıyorum ve ben dosyadaki tüm kullanıcılar için tüm izinleri ekledim. Herkes bunun neden işe yaramayacağını düşünebilir mi?
Düzenleme: Çözüldü! Yavaş sorgu günlüğünün yolu yanlıştı, / var / log * s * / my.slow.log yerine /var/log/my.slow.log olmalıdır . Yardım için herkese teşekkürler, çok şey öğrendim!
SET GLOBAL log_output=FILE
benim için düzeltti.
SELECT variable_value FROM information_schema.global_variables WHERE variable_name IN ('slow_query_log','slow_query_log_file','long_query_time');
çıktısını çalıştırın ve yayınlayın.