source

런타임에 long_query_time 변수를 변경할 수 없는 이유

ittop 2023. 10. 14. 10:36
반응형

런타임에 long_query_time 변수를 변경할 수 없는 이유

MySQL 버전 5.1.66을 사용하고 있습니다.long_query_time 변수가 동적인 것을 보았지만 시도해보니

set GLOBAL long_query_time=1; 

위의 수술을 다시 한 후에 나는 시도했습니다.

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

mysql 콘솔에서 변경되지 않는데, 왜죠?

GLOBAL 시스템 변수를 설정하지만 SESSION 변수를 쿼리합니다.현재 세션에 대해 GLOBAL 변수 설정을 적용하려면 @@SESSION.long_query_time 변수를 다시 연결하거나 설정해야 합니다.(기본적으로 SHOW VARILS는 세션 변수를 표시합니다.)

다음은 예입니다.

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 |
+-----------------+-----------+

MySQL 8.0은 다음을 소개했습니다.SET PERSIST ..동적으로 설정하는 구성을 유지하는 데 도움이 될 수 있는 구문입니다.MySQL 8.0 설명서 참조

mysql(cfr. http://dev.mysql.com/doc/refman/5.1/en/set-statement.html) 에서 시스템 변수 값을 변경해도 세션에 이미 연결된 클라이언트의 값은 변경되지 않습니다.

변경사항은 서버 재부팅, 이후 변경사항 또는 세션 만료 시까지 지속됩니다.

더 자세한 사항은 http://bugs.mysql.com/bug.php?id=38704 을 참조하시기 바랍니다.

언급URL : https://stackoverflow.com/questions/15541603/why-i-could-not-alter-the-variable-long-query-time-variable-at-runtime

반응형