2013-03-21 12 views
22

Ich verwende MySQL Version 5.1.66. Ich sah, dass das long_query_time Variable ist dynamisch, aber wenn ichWarum konnte ich die Variable long_query_time nicht zur Laufzeit ändern

versuchte
set GLOBAL long_query_time=1; 

Nach der obigen Operation wieder habe ich versucht,

mysql> show variables like 'long_query_time'; 
+-----------------+-----------+ 
| Variable_name | Value  | 
+-----------------+-----------+ 
| long_query_time | 10.000000 | 
+-----------------+-----------+ 
1 row in set (0.00 sec) 

aus der MySQL-Konsole wird nicht verändert zu werden, warum?

Antwort

42

Sie sind eine globale Systemvariable einstellen, aber Sie für die Session Variable abfragt. Damit die GLOBAL-Variableneinstellung für die aktuelle Sitzung wirksam wird, müssen Sie die Verbindung erneut herstellen oder die Variable @@ SESSION.long_query_time festlegen. (Beachten Sie, dass SHOW VARIABLES standardmäßig die Session-Variablen zeigt.)

Hier ist ein Beispiel:

mysql> SHOW SESSION VARIABLES LIKE "long_query_time"; 
+-----------------+-----------+ 
| Variable_name | Value  | 
+-----------------+-----------+ 
| long_query_time | 10.000000 | 
+-----------------+-----------+ 

mysql> SET @@GLOBAL.long_query_time = 1; 

mysql> SHOW GLOBAL VARIABLES LIKE "long_query_time"; 
+-----------------+----------+ 
| Variable_name | Value | 
+-----------------+----------+ 
| long_query_time | 1.000000 | 
+-----------------+----------+ 

mysql> SHOW VARIABLES LIKE "long_query_time"; 
+-----------------+-----------+ 
| Variable_name | Value  | 
+-----------------+-----------+ 
| long_query_time | 10.000000 | 
+-----------------+-----------+ 
+0

Danke, so Ich habe das, wenn wir versucht, zeigen Variable wie "long_query_time" es zeigt die Session-Variable –

+0

Sehr wahr, ich habe nicht daran gedacht. Vielen Dank –

Verwandte Themen