강좌
클라우드/리눅스에 관한 강좌입니다.
데이터베이스 분류

MYSQL의 쿼리로그를 남기려면

작성자 정보

  • 구돌 작성
  • 작성일

컨텐츠 정보

본문

MYSQL의 쿼리로그를 남기려면

 

앞의 예에서 보았던 MYSQL의 주로그(에러로그)에는 웹프로그램이나 MYSQL접속후에 사용되는 SQL쿼리(Query)에 대한 로그는 기록되지 않습니다.   

 

 

  만약 쿼리로그를 기록하게 된다면 로그의 크기가 순식간에 커질 수 있으며, 어느 순간에 파일시스템이 꽉 차버리는 시스템장애가 발생할지도 모르기 때문에 MYSQL에서 SQL쿼리로그는 필요할 경우에만 지정된 로그파일에 기록할 수 있도록 선택적으로 사용할 수 있습니다.   

 

 

 

 

MYSQL데이터베이스를 사용하는 프로그래머의 입장에서 본다면 SQL쿼리로그가 종종 필요할 경우가 있을 것입니다.   

 

 

 이때 서버관리자에게 SQL쿼리로그를 기록하게 해달라고 요청할 것이며 이런 경우에 서버관리자의 입장에서 , 알겠습니다.   

 

 

라고 준비된 대답을 할 수 있어야 할 것입니다.   

 

 

  아래 설명을 참고하여 그 답을 준비하도록 하십시요.

 

MYSQL 쿼리로그를 기록하려면 “mysqld_safe”으로 MYSQL을 실행하실 때에 다음과 같은 옵션을 추가로 사용하시면 됩니다.   

 

 

 

 

쿼리로그옵션형식 : --log=쿼리로그파일명

 

위와 같이 쿼리로그의 형식을 사용하시면 MYSQL의 데이터디렉토리 ( : /usr/local/mysql/data/)쿼리로그파일명으로 지정된 로그파일이 생성되며 SQL쿼리로그를 기록하게 됩니다.   

 

 

 

 

만약 위의 형식에서 쿼리로그파일명을 생략하고 “--log”라고만 한다면 호스트명.log”라는 파일명으로 쿼리로그가 기록될 것입니다.   

 

 

 

 

아래의 예는 /usr/local/mysql/bin/디렉토리에서 쿼리로그를 기록하기 위하여 아래와 같이 실행한 것입니다.   

 

 

 

 

[root@file bin]# pwd

/usr/local/mysql/bin

[root@file bin]#

[root@file bin]# ./mysqld_safe --log=MYSQL_QUERY_LOG &

[1] 2882

[root@file bin]# Starting mysqld daemon with databases from /usr/local/mysql/data

 

[root@file bin]#

 

, 위의 예에서 쿼리로그파일명으로 MYSQL_QUERY_LOG라고 지정을 하였기 때문에 /usr/local/mysql/data/디렉토리에는 MYSQL_QUERY_LOG라는 파일명이 생성되어 쿼리로그를 기록할 것입니다.   

 

 

 

 

다음은 /usr/local/mysql/data/디렉토리에서 위의 예에서 지정한 쿼리로그를 확인한 것입니다.   

 

 

 

 

[root@file data]# pwd

/usr/local/mysql/data

[root@file data]#

[root@file data]# ls -l MYSQL_QUERY_LOG

-rw-rw----    1 mysql    mysql         157  2 16 16:09 MYSQL_QUERY_LOG

[root@file data]#

 

 

참고로 MYSQL의 로그파일을 특별한 위치에 저장하고자 한다면 다음과 같이 디렉토리경로와 함께 MYSQL을 시작하시면 됩니다.   

 

 

 

 

[root@file bin]# ./mysqld_safe --log=/디렉토리경로/MYSQL_QUERY_LOG &

 

위와 같이 하시면 지정된 “/디렉토리경로/“MYSQL_QUERY_LOG”파일이라는 쿼리로그파일을 저장하게될 것입니다.   

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  106 명