MySQL에서 일반 로그(General Log)를 켜려면 SET 명령어를 사용해야 합니다. 일반 로그는 서버로 들어오는 모든 클라이언트의 SQL 쿼리를 기록하므로, 디버깅이나 쿼리 분석 시 매우 유용합니다.
일반 로그 활성화 문법
다음은 일반 로그를 켜는 기본 문법입니다.
set global general_log=ON;
현재 일반 로그 상태 확인하기
먼저 SHOW 명령어로 현재 일반 로그 상태를 확인해 보겠습니다.
mysql> SHOW variables like '%general_log%';
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+------------------+---------------------+ | Variable_name | Value | +------------------+---------------------+ | general_log | OFF | | general_log_file | DESKTOP-QN2RB3H.log | +------------------+---------------------+ 2 rows in set (0.06 sec)
현재 general_log 값이 OFF로 설정되어 있는 것을 확인할 수 있습니다.
일반 로그 켜기
이제 다음 쿼리를 실행하여 일반 로그를 활성화합니다.
mysql> set global general_log=ON; Query OK, 0 rows affected (0.18 sec)
설정이 정상적으로 적용되었는지 다시 한번 상태를 확인해 보겠습니다.
mysql> SHOW variables like '%general_log%';
실행 결과는 다음과 같습니다.
+------------------+---------------------+ | Variable_name | Value | +------------------+---------------------+ | general_log | ON | | general_log_file | DESKTOP-QN2RB3H.log | +------------------+---------------------+ 2 rows in set (0.01 sec)
general_log 값이 ON으로 변경된 것을 볼 수 있습니다.
로그 파일 저장 위치 변경하기
필요에 따라 일반 로그 파일의 저장 위치도 변경할 수 있습니다. 다음과 같이 general_log_file 변수에 원하는 경로를 지정하면 됩니다.
mysql> SET GLOBAL general_log_file = 'E:\mysqllog'; Query OK, 0 rows affected (0.11 sec)
변경된 로그 파일 경로를 다시 확인해 보겠습니다.
mysql> SHOW variables like '%general_log%';
실행 결과는 다음과 같습니다.
+------------------+------------+ | Variable_name | Value | +------------------+------------+ | general_log | ON | | general_log_file | E:mysqllog | +------------------+------------+ 2 rows in set (0.01 sec)
주의 사항
SET GLOBAL로 변경한 설정은 MySQL 서버가 재시작되면 초기화됩니다. 재시작 후에도 설정을 유지하려면 MySQL 설정 파일(my.cnf 또는 my.ini)에 아래 내용을 추가해야 합니다.
[mysqld] general_log = ON general_log_file = /path/to/mysqllog
또한 일반 로그는 모든 쿼리를 기록하기 때문에 디스크 사용량이 빠르게 증가할 수 있습니다. 운영 환경에서는 필요한 경우에만 활성화하고, 사용 후에는 반드시 꺼두는 것이 좋습니다.