MYSQL 로그 남기도록 설정하기

Posted by Breeze24
2016. 6. 5. 00:22 DB/MYSQL
MYSQL 로그 남기도록 설정하기
1. MYSQL에 로그 기록 방법


일반로그를 TABLE에 남기도록 설정. 

테이블명은 mysql.general_log

SET GLOBAL general_log='ON';
SET GLOBAL slow_query_log='OFF';  //선택사항  long_query_time 값을 참조하여 쿼리 기록
SET GLOBAL log_output='TABLE';  //TABLE에 로그를 남긴다. (FILE, TABLE, NONE)


2. 활용 방법

MYSQL은 MSSQL과 다르게 general_log를 ON시키기 전에는 사용자 접속 

로그를 확인할 수 없다. 

.

general_log를 ON시키면 Access denied된 사용자를 조회가 가능하다. 

MYSQL관리자는 해당 로그를 분석하여 무차별 대입공격 여부를 파악이 가능하다. 

select * from mysql.general_log where command_type='connect' and argument like 'Access denied%'


MYSQL 로그


3. 로그 안남기기


SET GLOBAL general_log='OFF';


4. 로그 테이블 변경하기

      로그의 양이 많아지면 테이블 내용을 관리하기가 수월하지 않다. 

      아래의 명령어로 로그 테이블을 교체한다.

create table temp_general_log like general_log;
rename table general_log to old_general_log, temp_general_log to general_log;
.