MYSQL의 쿼리로그를 남기려면
작성자 정보
- 구돌 작성
- 작성일
컨텐츠 정보
- 2,588 조회
- 0 추천
- 목록
본문
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”파일이라는 쿼리로그파일을 저장하게될 것입니다.
관련자료
-
이전
-
다음