Tüm mysql sorguları günlük dosyasına nasıl kaydedilir?


17

Wys sunucu ortamında Mysql 5.6.12 kullanıyorum. Şimdi Tüm sorguları ".log" dosyasına, PHP ya da PHPMyAdmin tarafından çalıştırılan sorgulara kaydetmek istiyorum, bunları günlüğe kaydetmek istiyorum ...

Yanıtlar:


20
[mysqld]
# Set Slow Query Log
long_query_time = 1
slow_query_log = 1
slow_query_log_file = /usr/log/slowquery.log
log_queries_not_using_indexes = 1

#Set General Log
general_log = on
general_log_file=/usr/log/general.log

general_logBir üretim sunucusunda etkinleştirmenin ek yükü olduğunu unutmayın. Sorunlu sorguları adresinden kontrol edebilirsiniz slow log.


1
Benim için "general_log = on" yerine "general_log = 1" kullanmak zorunda kaldım.
GuyPaddock

Mysql 5.6.7 kullanarak Wamp Sunucusu üzerinde çalıştı. Değiştirmem gereken tek şey dosyalara giden yollardı, benim durumumda C: \ wamp \ logs \ mysql_query.log.
Mário Rodrigues

Neden tüm bu yapılandırma değerleri? Sadece general_logve general_log_fileyeter.
laurent

8

Bu muhtemelen sadece geçici olarak yapmak istediğiniz bir şey olduğundan, bunu config dosyası yerine kabuktan yapmak yararlı olabilir:

> set global general_log_file = "/var/log/mysql/queries.log";
> set global general_log = "ON";
[wait some time, hit some pages, whatever]
> set global general_log = "OFF";

5

Bu iki satırı my.cnf dosyasına koy.

[mysqld]

general_log     = on
general_log_file=/users/ugrad/linehanp/mydb/logfile.txt

Bu, yalnızca PHP / PHPMyAdmin'i değil, tüm sorguları herhangi bir kaynaktan sunucuya kaydeder.

Yine de dikkatli olun - genel günlüğün etkinleştirilmesi sunucunuza ağır bir yük getirebilir. Sadece kısa süreler / hata ayıklama için az miktarda kullanılmalıdır.

Belgelere buradan ulaşabilirsiniz . Fro orada:

Genel sorgu günlüğünü devre dışı bırakmak veya etkinleştirmek veya çalışma zamanında günlük dosyası adını değiştirmek için global general_log ve general_log_file sistem değişkenlerini kullanın. Günlüğü devre dışı bırakmak için general_log değerini 0 (veya OFF) olarak veya etkinleştirmek için 1 (veya ON) olarak ayarlayın. Günlük dosyasının adını belirtmek için general_log_file değerini ayarlayın.

Yani,

general_log     = on

ve

general_log     = 1

eşanlamlıdır!


Benim için "general_log = on" yerine "general_log = 1" kullanmak zorunda kaldım.
GuyPaddock

@GuyPaddock MySQL'in hangi sürümünü kullanıyorsunuz?
Vérace
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.