본문 바로가기
mysql

mysql query 로그 추적 방법

by Knowledge Store In Hyunsoft 2017. 11. 1.

 

 

 

SET GLOBAL general_log=on; 명령어는 MySQL에서 일반 쿼리 로그(general query log)를 활성화하는 명령

일반 쿼리 로그는 서버에서 실행되는 모든 SQL 쿼리(성공 여부와 관계없이)를 기록하는 기능

이를 통해 디버깅이나 쿼리 모니터링에 유용한 정보를 얻을 수 있습니다.

다음은 이 명령어와 관련된 세부 정보입니다:

1. 명령어 설명

SET GLOBAL general_log = 'ON';


이 명령어는 현재 MySQL 서버에 대한 일반 쿼리 로그를 활성화함.

이 명령어는 MySQL 서버가 재시작될 때까지 로그를 활성화하지만, 서버가 재시작되면 이 설정이 기본값으로 돌아감.

따라서, 영구적으로 설정하려면 MySQL 설정 파일에 추가해야 합니다(아래 참조).

2. 로그 파일 경로 확인 및 설정
로그가 기록되는 파일 경로를 확인하거나 설정할 수 있습니다. 기본적으로 로그는 general_log_file 설정에 정의된 파일에 기록됩니다.

로그 파일 경로를 확인하려면:

SHOW VARIABLES LIKE 'general_log_file';
SET GLOBAL general_log_file = '/path/to/your/logfile.log';

 

3. 영구적으로 설정하기
만약 MySQL 서버를 재시작하더라도 일반 로그 기능을 유지하고 싶다면, MySQL 설정 파일(my.cnf 또는 my.ini)을 편집하여 general_log를 활성화할 수 있음.

my.cnf 또는 my.ini 파일을 열고 [mysqld] 섹션에 다음 내용을 추가

[mysqld]
general_log = ON
general_log_file = /var/log/mysql/general.log  # 로그 파일 경로

 

 

5. 주의사항
성능 문제: 일반 쿼리 로그는 서버에서 실행되는 모든 쿼리를 기록하기 때문에, 트래픽이 많은 서버에서 이 기능을 사용하면 성능 저하가 발생할 수 있습니다. 반드시 필요한 경우에만 활성화해야함.
디스크 공간: 모든 쿼리가 기록되므로 로그 파일 크기가 매우 빨리 커질 수 있습니다. 로그 파일 관리가 필요함
이 명령어를 사용하면 MySQL 서버의 모든 쿼리를 기록할 수 있지만, 성능에 미치는 영향을 고려하여 적절히 사용해야 함.

728x90

댓글