programing

MySQL을 다시 시작하지 않고 MySQL의 느린 쿼리 로그를 활성화하려면 어떻게 해야 합니까?

goodcopy 2022. 12. 7. 00:17
반응형

MySQL을 다시 시작하지 않고 MySQL의 느린 쿼리 로그를 활성화하려면 어떻게 해야 합니까?

http://crazytoon.com/2007/07/23/mysql-changing-runtime-variables-with-out-restarting-mysql-server/의 지시에 따라 보았습니다만, 문턱값만 설정되어 있는 것 같습니다.

파일 경로 설정 등 다른 작업을 수행해야 합니까?

MySQL 문서에 따르면

--log-slow-queries에 file_name 값이 지정되지 않은 경우 기본 이름은 다음과 같습니다.host_name-slow.log.서버는, 다음의 경우를 제외하고, 데이터 디렉토리에 파일을 작성합니다.다른 디렉토리를 지정하기 위해 절대 경로 이름이 지정됩니다. 

입니다.

변수 표시

로그 파일 경로를 나타내지 않고 서버에 느린 쿼리 로그 파일이 표시되지 않습니다.

편집

서버 버전 5.0.77을 사용하고 있는 것 같기 때문에 다음 작업을 수행해야 합니다.

SET GLOBAL log_slow_settings = 1;

에러 1238(HY000):'log_slow_queries' 변수는 읽기 전용 변수입니다.

서버를 재부팅하고 log_slow_queries를 설정에 설정해야 합니다.

해라SET GLOBAL slow_query_log = 'ON';아마FLUSH LOGS;

이것은 MySQL 5.1 이후를 사용하고 있는 것을 전제로 하고 있습니다.이전 버전을 사용하는 경우 서버를 재시작해야 합니다.이는 MySQL 설명서에 설명되어 있습니다.로그는 설정 파일 또는 명령줄에서 설정할 수 있습니다.

버전 5.1의 저속 쿼리의 경우 다음 설정이 유효합니다.

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

또한 아래 배치해야 합니다.[mysqld]컨피규레이션파일의 일부와 재기동mysqld.

로그 검색 활성화 여부

SHOW VARIABLES LIKE '%log%';

로그를 설정합니다.-

SET GLOBAL general_log = 'ON'; 

SET GLOBAL slow_query_log = 'ON'; 

MySQL 매뉴얼 - 저속 쿼리 로그 파일

따라서 다음을 실행하여 저속 로그 파일(5.1.6 이후)을 설정할 수 있습니다.

set global slow_query_log_file = 'path';

변수 slow_query_log는 활성화 여부만 제어합니다.

MySQL 서버가 파일에 대한 권한을 가지고 있고 편집할 수 있는지 확인하는 것이 문제라고 생각합니다.

파일에 액세스 할 수 있는 경우는, 다음과 같이 설정할 수 있습니다.
SET GLOBAL slow_query_log = 1;

그렇지 않은 경우 구성 파일을 변경한 후 서버를 항상 다시 로드할 수 있습니다.Linux에서는 보통/etc/init.d/mysql reload

이것들은 효과가 있다

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

셋업 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

이를 위한 최선의 방법은 log_slow_time을 매우 높게 설정하여 저속 쿼리 로그를 "오프"하는 것입니다.활성화하려면 log_slow_time을 낮춥니다.log_queries_not_using_indexes에 대해 동일한 트릭(OFF로 설정)을 사용합니다.

일반 오류 로그를 활성화하고 느린 쿼리 오류 로그를 파일 대신 테이블에 기록하려는 경우

파일 대신 테이블 로그인을 시작하려면:

set global log_output = “TABLE”;

일반 쿼리 로그 및 느린 쿼리 로그를 활성화하려면:

set global general_log = 1;
set global slow_query_log = 1;

로그를 표시하려면:

select * from mysql.slow_log;
select * from mysql.general_log;

자세한 내용은 이 링크를 참조하십시오.

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

이것은 mysql > 5.5로 동작합니다.

'%long%'와 같은 변수 표시;

SET GLOBAL long_time = 1;

언급URL : https://stackoverflow.com/questions/2403793/how-can-i-enable-mysqls-slow-query-log-without-restarting-mysql

반응형