Domanda Come posso abilitare il log delle query lento di MySQL senza riavviare MySQL?


Ho seguito le istruzioni qui: http://crazytoon.com/2007/07/23/mysql-changing-runtime-variables-with-out-restarting-mysql-server/ ma questo sembra solo impostare la soglia.

Devo fare qualcos'altro come impostare il filepath?

Secondo i documenti di MySQL

Se non viene fornito alcun valore file_name per --log-slow-queries, il nome predefinito è
nome_host-slow.log. Il server crea il file nella directory dei dati, a meno che
viene fornito un nome di percorso assoluto per specificare una directory diversa.

In esecuzione

MOSTRA VARIABILI

non indica alcun percorso del file di registro e non vedo alcun file di registro delle query lento sul mio server ...

MODIFICARE

Sembra che sto usando server versione 5.0.77, quindi ho dovuto fare:

SET GLOBAL log_slow_queries = 1;

ma ottengo: ERRORE 1238 (HY000): la variabile 'log_slow_queries' è una variabile di sola lettura

Presumo che ho bisogno di riavviare il server e avere log_slow_queries impostato nella mia configurazione?


83
2018-03-08 18:44


origine


risposte:


Provare SET GLOBAL slow_query_log = 'ON'; e forse FLUSH LOGS;

Questo presuppone che tu stia usando MySQL 5.1 o successivo. Se si utilizza una versione precedente, è necessario riavviare il server. Questo è documentato nel Manuale MySQL. È possibile configurare il registro nel file di configurazione o sulla riga di comando.


87
2018-03-08 18:54



Per le query lente sulla versione <5.1, la seguente configurazione ha funzionato per me:

log_slow_queries=/var/log/mysql/slow-query.log
long_query_time=20
log_queries_not_using_indexes=YES

Si noti inoltre di posizionarlo sotto [mysqld] parte del file di configurazione e riavvia mysqld.


27
2018-05-24 06:34



Trova log abilitato o no?

SHOW VARIABLES LIKE '%log%';

Imposta i log: -

SET GLOBAL general_log = 'ON'; 

SET GLOBAL slow_query_log = 'ON'; 

16
2018-01-14 11:38



Manuale MySQL - file-log-query lento

Ciò afferma che è possibile eseguire quanto segue per impostare il file di registro lento (dalla 5.1.6 in poi):

set global slow_query_log_file = 'path';

La variabile slow_query_log controlla solo se è abilitata o meno.


7
2018-03-08 18:59



Questi funzionano

SET GLOBAL LOG_SLOW_TIME = 1;
SET GLOBAL LOG_QUERIES_NOT_USING_INDEXES = ON;

Rotto sul mio setup 5.1.42

SET GLOBAL LOG_SLOW_QUERIES = ON;
SET GLOBAL SLOW_QUERY_LOG = ON;
set @@global.log_slow_queries=1;

http://bugs.mysql.com/bug.php?id=32565

Sembra che il modo migliore per farlo sia impostare log_slow_time molto alto, quindi "disattivare" il log delle query lente. Abbassa log_slow_time per abilitarlo. Usa lo stesso trucco (impostato su OFF) per log_queries_not_using_indexes.


6
2018-05-13 03:11



Penso che il problema è assicurarsi che il server MySQL abbia i diritti sul file e possa modificarlo.

Se riesci a ottenere l'accesso al file, puoi provare a impostare:
SET GLOBAL slow_query_log = 1;

In caso contrario, è sempre possibile "ricaricare" il server dopo aver modificato il file di configurazione. Di solito è Linux /etc/init.d/mysql reload


5
2018-03-08 18:54



Questo dovrebbe funzionare su mysql> 5.5

MOSTRA VARIABILI COME '% lungo%';

SET GLOBAL long_query_time = 1;


1
2018-02-21 22:42



Se si desidera abilitare i log di errori generali e il log degli errori di query lenta

Per avviare la registrazione nella tabella anziché nel file

mysql> set global log_output = "TABLE"; Per abilitare il log delle query generale e lento

mysql> imposta global general_log = 1; mysql> imposta global slow_query_log = 1; Nome della tabella in cui viene eseguita la registrazione per impostazione predefinita

mysql> select * from mysql.slow_log; mysql> select * from mysql.general_log; Per maggiori dettagli visita questo link

http://easysolutionweb.com/technology/mysql-server-logs/


1
2017-09-09 05:39