Jak zalogować się Wszystkie zapytania mysql do pliku dziennika?


17

Używam MySQL 5.6.12 w środowisku serwera Wamp. Teraz chcę zalogować wszystkie zapytania do pliku „.log”, zapytania uruchamiane przez PHP lub PHPMyAdmin, chcę je zalogować ...

Odpowiedzi:


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

Należy pamiętać, że włączenie general_logna serwerze produkcyjnym ma narzut, którego należy unikać. Możesz sprawdzić problematyczne zapytania z slow log.


1
Dla mnie musiałem użyć „general_log = 1” zamiast „general_log = on”.
GuyPaddock,

Pracował na serwerze Wamp przy użyciu mysql 5.6.7. Jedyne, co musiałem zmienić, to ścieżki do plików Tje, w moim przypadku C: \ wamp \ logs \ mysql_query.log.
Mário Rodrigues,

Dlaczego wszystkie te wartości konfiguracji? Wystarczy general_logi general_log_filewystarczy.
laurent

8

Ponieważ jest to coś, co prawdopodobnie chcesz zrobić tylko tymczasowo, może być przydatne wykonanie tego z powłoki zamiast z pliku konfiguracyjnego:

> 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

Umieść te dwie linie w my.cnf.

[mysqld]

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

Spowoduje to zalogowanie wszystkich zapytań do serwera z dowolnego źródła, nie tylko PHP / PHPMyAdmin.

Bądź jednak ostrożny - włączenie ogólnego dziennika może spowodować duże obciążenie serwera. Używać oszczędnie tylko przez krótkie okresy / debugowanie.

Dokumentacja jest dostępna tutaj . Fro tam:

Aby wyłączyć lub włączyć ogólny dziennik zapytań lub zmienić nazwę pliku dziennika w czasie wykonywania, użyj globalnych zmiennych systemowych general_log i general_log_file. Ustaw dziennik_ogólny na 0 (lub WYŁ.), Aby wyłączyć dziennik lub na 1 (lub WŁ.), Aby go włączyć. Ustaw plik_log_ogólny, aby określić nazwę pliku dziennika.

Więc,

general_log     = on

i

general_log     = 1

są synonimami!


Dla mnie musiałem użyć „general_log = 1” zamiast „general_log = on”.
GuyPaddock,

@GuyPaddock jakiej wersji MySQL używasz?
Vérace
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.