[MariaDB] general log 초기화

MariaDB에서 general log 파일이 비대해졌을 때 초기화(삭제/리셋) 하는 방법은 설정 방식에 따라 다릅니다. 핵심은 로그가 파일로 기록되는지, 테이블로 기록되는지를 먼저 확인하는 것입니다.


1. 현재 general log 설정 확인

 
SHOW VARIABLES LIKE 'general_log%';
SHOW VARIABLES LIKE 'log_output';
 
  • general_log = ON → 활성화 상태
  • log_output = FILE → 파일 저장
  • log_output = TABLE → mysql.general_log 테이블 저장

2. FILE 방식일 경우 (일반적)

✔ 방법 1: 안전하게 로그 초기화 (권장)

 
SET GLOBAL general_log = OFF;
 

OS에서 로그 파일 삭제 또는 비우기:

 
# 파일 내용만 비우기 (권장)
> /var/lib/mysql/hostname.log

# 또는 삭제
rm -f /var/lib/mysql/hostname.log
 

다시 활성화:

 
SET GLOBAL general_log = ON;
 

✔ 방법 2: mysqladmin 사용

 
mysqladmin flush-logs
 

→ 로그 파일을 새로 생성 (rotate 개념)


✔ 방법 3: 설정 변경 (로그 파일 경로 확인)

 
SHOW VARIABLES LIKE 'general_log_file';
 

3. TABLE 방식일 경우

general log가 테이블에 쌓이는 경우 (mysql.general_log)

✔ 초기화

 
SET GLOBAL general_log = OFF;

TRUNCATE TABLE mysql.general_log;

SET GLOBAL general_log = ON;
 

4. 추가 권장 사항 (중요)

🔥 general log는 항상 켜두면 안됨

  • 모든 쿼리를 기록 → 성능 저하 + 디스크 폭발
  • 운영 환경에서는 필요 시에만 ON

🔧 로그 크기 관리 자동화

logrotate 설정 예시

 
/var/lib/mysql/*.log {
daily
rotate 7
compress
missingok
notifempty
create 640 mysql mysql
postrotate
mysqladmin flush-logs
endscript
}
 

5. 한 줄 요약

  • FILE → OFF → 파일 삭제/비우기 → ON
  • TABLE → OFF → TRUNCATE → ON
위로 스크롤