MYSQL

[MySQL] 쿼리 및 DB 로그 남기기


[MySQL] 쿼리 및 DB 로그 남기기


  2021-10-10  680 View 공개

MySQL log

MySQL을 설정없이 설치하면 기본적으로 에러 로그만 남기게 된다.
접속 정보 및 쿼리에 대한 로그는 따로 설정을 통해 기록을 남길 수 있다.
프로젝트 서버 보안성 검토에도 필수로 확인하는 항목이니 기본적으로 알아두는 것이 좋을 것이다.

 
-general_log 확인
일반적으로 모든 쿼리에대한 로그를 남기기 위해 general_log Value 값을 변경해 주어야한다.
MySQL접속 후 general_log의 상태 값과 해당 로그가 떨어지는 경로를 확인한다.

1
SHOW VARIABLES LIKE '%general%';
cs



-general_log 상태값 변경

상태값을 ON으로 변경해준다.

1
SET GLOBAL general_log = ON;
cs



-로그확인

variables의 상태값을 변경해주는 시점부터 발생하는 쿼리에 대해 general_log_file의 경로에 로그를 남기기 시작한다.
위 방법으로 변경해주면 MySQL을 재실행 할 필요없이 바로 로그를 남긴다.
MySQL 커넥션을 끊고 해당 경로의 파일을 확인한다.


1
vi /home/mysql_data/localhost.log
cs



-Variables 자동 설정

MySQL 서버를 재실행하면 general_log 상태값은 다시 OFF로 바뀐다.
재실행해도 로그가 남도록 my.cnf파일의 설정 값을 변경해준다.


/etc/my.cnf 파일 추가

1
2
general_log = ON
general_log_file = /home/mysql_data/log/history.log
cs


파일 로그의 경로를 만들어 주고 소유자를 변경해준다.

1
2
3
mkdir /home/mysql_data/log
touch /home/mysql_data/log/history.log
chown -R mysql:mysql /home/mysql_data/log
cs


이제 MySQL 서버를 재실행 후 variables를 확인해준다.

재실행 후 이전과 다르게 자동으로 general_log 상태값이 ON으로 되어 있고 로그파일 경로도 변경된 것을 확인했다.

로그 확인



Tags  #MySql  



🚩 MYSQL 글 모음 (총 37 건)

[macOS] zsh: command not found: mysql 해결 방법

Last Updated : 2023-09-29
#MySql

Mysql DB생성 및 유저등록

Last Updated : 2023-09-29
#Mysql

Mysql 백업 및 복구

Last Updated : 2023-09-29
#MySql

MySql - POD 예제

Last Updated : 2023-09-29
#MySql

데이터베이스에서 작은따옴표(')를 다루는 방법 : SQL 인젝션 예방과 데이터 출력

Last Updated : 2023-09-29
#Mysql

[mySQL] 특정 레코드가 몇 번째인지 알아내는 방법

Last Updated : 2023-09-10
#mySQL #row_number