MySQL에서 실행된 쿼리를 로그로 확인하기

MySQL 5.1 이상 버전에서는 실행된 쿼리를 로그로 확인하는 방법을 간단하게 제공하고 있다.

MySQL에 root로 로그인한 다음에,

show VARIABLES where variable_name like ‘%log%’;

를 실행시키면 로그와 관련된 변수를 확인해볼 수 있는데,

이 중에서 general_log, general_log_file, log_output 이 실행된 쿼리 로그와 관련된 변수들이다.

로그는 파일 또는 DB 테이블로 남길 수 있다.

 

우선 기본 설정.

SET GLOBAL general_log = ‘on’;

으로 로그 남기는 기능을 활성화 한다.

 

SET GLOBAL log_output = ‘FILE’;

로 로그를 남길 위치를 설정한다.

FILE 외에 TABLE, NONE 값을 설정 가능하다.
파일에 실행 쿼리 로그를 남기는 경우에는 general_log_file 변수로 설정한 파일에 로그를 남긴다.

기본값은 MySQL 이 설치된 디렉토리/data/컴퓨터이름.log 인 듯 하다.

그런데, 윈도우7 64bit 기준으로, MySQL이 설치된 기본 디렉토리는 “C:\Program Files\MySQL\MySQL Server 5.6” 인데,

이 폴더 아래에 data라는 폴더가 있는데 아무리 쿼리를 실행해도 여기에 로그가 쌓이질 않아서 파일을 찾아보니

“C:\ProgramData\MySQL\MySQL Server 5.6\data” 여기에 로그파일이 쌓이고 있었다.

윈도우 쓰시는 분은 여기서 로그파일을 확인하실 수 있을 듯.

 

맥의 OSX 에서는mysql 설치된 디렉토리 아래 data에 로그가 쌓였다.

dmg로 기본 설치했을때의 기본값은 “/usr/local/mysql/data” 이었다. (버전, 환경마다 다를 수 있음.)

TABLE에 로그를 남기는 경우에는,

mysql 스키마의 general_log 테이블에 로그가 쌓인다.

 

댓글 남기기