본문 바로가기

데이터베이스(DA, AA, TA)/MySQL

[MySQL] MySQL 로그 남기기

서버를 운영하면서 로그 파일의 의미는 아주 중요합니다. 문제가 발생했을 때, 그 원인 파악을 조금 더 쉽게 하도록 하여 해결 시간을 단축할 수 있도록 도와줍니다. 아래 내용은 MySQL 운영시 로그 정보를 저장하는 방법입니다.


1. 기본 로그 설정 - 리눅스


[mysqld]


# 에러 로그 설정

log-error=/로그저장경로/error.log


# 쿼리 로그 설정

log=/로그저장경로/query.log


# 바이너리 로그 설정

log-bin=mysql-bin


# 슬로우 쿼리(slow query) 로그 설정

log-slow-queries=/로그저장경로/mysql-slow.log

long_query_time=5


# UPDATE 쿼리 설정

log-update=update_logs



2. 쿼리 로그


리눅스 환경에서는 my.cnf 파일을 수정합니다.


[mysqld]


# MyISAM 로그

log-isam=/로그저장경로/myisamlog.log


# 쿼리 로그

log=/로그저장경로/mysql.log


# 수정 로그

log-update=/로그저장경로/mysql-update.log


# 바이너리 로그

log-bin=/로그저장경로/mysql-bins.log


# 슬로우 쿼리 로그

log-slow-queries=/로그저장경로/mysql-slow.log

long_query_time=5



쿼리 로그를 남기는 두번째 방법입니다.


mysql> show variables like 'general_log%';

+------------------+---------------------------------+

| Variable_name    | Value                           |

+------------------+---------------------------------+

| general_log      | OFF                             |

| general_log_file | /var/lib/mysql/ubuntuserver.log |

+------------------+---------------------------------+


# 로깅 (이후로 general_log_file에 실시간으로 기록됨)

mysql> set GLOBAL general_log='ON';


# 로깅 해제

mysql> set GLOBAL general_log='OFF';



* 수정 이후에는 mysql 재시작이 필요합니다. 


슬로우 쿼리 설정 후, 재시작시 unknown variable 'log-slow-queries' 와 같은 오류 메시지와 함께 mysql이 시작되지 않는 경우가 있습니다. 이럴 경우에는 아래 명령어를 이용합니다.


slow_query_log = 1

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

long_query_time = 1