mysql 슬로우 쿼리 로그 설정 및 테스트

개발환경

Centos6

Mysql 5.5

 

 

 

 

1.현재 mysql slow query log의 설정을 확인

 

show variables like 'slow_query_%'

 

슬로우 쿼리 로그 on/off확인

 

슬로우 쿼리 로그가 OFF되어있기 때문에 설정하겠습니다

 

 

 

2.mysql을 종료하고

-mysql의 설정파일인 my.cnf를 수정하겠습니다

 

vi /etc/my.cnf

 

 

3.my.cnf수정

-[mysqld] 아래 적당한곳에 아래 내용을 추가합니다.

 

slow_query_log = 1

slow_query_log_file = /var/log/mysql/mysql-slow.log

long_query_time = 2

 

 

my.cnf에 슬로우쿼리 설정 추가

 

3줄인데,

 

첫번째 줄 slow_query_log = 1은 로그를 사용(ON)하겠다는 뜻입니다. 0이면 안하겠다는뜻(OFF)

 

두번째 줄은 슬로우쿼리 로그를 저장할 위치입니다

 

세번째 줄의 2 2초이상 걸리는 쿼리query에 대해 로그를 남기겠다는 뜻입니다.

 

이제 저장 :wq

 

 

4. mysql 재시작

 

service mysqld restart

 

 

 

5. 로그파일 저장할 폴더 생성 및 권한(퍼미션) 설정

mkdir /var/log/mysql

chown mysql:mysql /var/log/mysql

 

- 생성 및 설정 후 확인

ll /var/log | grep mysql

 

mysql 로그 권한 확인

 

 

6. 제대로 작동하는지 테스트해보겠습니다

-mysql 접속

-쿼리를 지연시키는 함수로 테스트

Select sleep(5);

 

 

함수 sleep으로 테스트

 

 

7.로그가 저장되었는지 확인해보겠습니다

-mysql을 종료하고

 

 cat /var/log/mysql/mysql-slow.log

 

슬로우 쿼리 로그 확인 체크

 

Time : 쿼리가 실행된 날짜 시간

User@host : 누가/어디서

Query_time : 쿼리실행시간

Lock_time : 테이블 락 시간

마지막줄에 사용된 쿼리문

 

 

 

 

ps혹시 실행이 안되거나 하면 저장경로나 설정, 권한에 문제가없는지 위에서 다시 확인해주세요~

 

그래도 안고쳐진다면 댓글로 남겨주세요 ㅎㅎ 같이 해결해봅시다!

댓글

Designed by JB FACTORY