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ć ...

Qazi
źródło

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.

Mahesh Patil
źródło
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";
Bojkot SE dla Moniki Cellio
źródło
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!

Vérace
źródło
Dla mnie musiałem użyć „general_log = 1” zamiast „general_log = on”.
GuyPaddock,
@GuyPaddock jakiej wersji MySQL używasz?
Vérace