본문 바로가기

DB(SQL)/mysql|maria

[Maria db] 데이터베이스 이력 쌓기 (query log)

반응형

https://mariadb.com/kb/en/server-monitoring-logs/

 

Server Monitoring & Logs

 

mariadb.com

1-1. DB 셋팅 확인 file

# mysql
cat /etc/my.cnf
# mariadb 
# mariadb 는 /etc/mysql/mysql.cnf 도 같이 봐야한다.
cat /etc/mysql/mariadb.conf.d/50-server.cnf

1-2. 셋팅 확인 (sql)

-- mysql 접속
SHOW VARIABLES LIKE 'general_log'; # 기본 로그 저장 유무
SHOW VARIABLES LIKE 'general_log_file'; # 기본 로그 file 저장 경로
SHOW VARIABLES LIKE 'slow_query_log'; # slow 쿼리 저장 유무
SHOW VARIABLES LIKE 'long_query_time'; # slow 쿼리 저장되는 시간
SHOW VARIABLES LIKE 'log_out'; # 로그 되는 방법 file|Table|file,table

 

2. mysql에 접속하여 셋팅 (재시작 필요없음 / 재부팅 후 사라질 수 있음??)

2-1. 셋팅

 

SET GLOBAL general_log = 'ON'; -- ON, OFF
SET GLOBAL slow_query_log = 'ON'; -- ON, OFF
SET GLOBAL log_output = 'TABLE'; -- FILE, TABLE, NONE
SET GLOBAL log_output = 'FILE'; -- FILE, TABLE, NONE
SET GLOBAL log_output = 'TABLE,FILE'; -- FILE, TABLE, NONE

파일로 셋팅할 경우 SHOW VARIABLES LIKE 'general_log_file'; 경로에서 로그 확인 가능

 

2-2. 파일 경로 변경 (재시작 필요)

  • [mysqld]에 아래의 2줄을 삽입합니다.
  • 0은 비활성, 1은 활성을 의미합니다.
# mysql
# /etc/my.cnf
# mariadb
# /etc/mysql/mariadb.conf.d/50-server.cnf

[mysqld]
general_log_file       = /var/log/mysql/mysql.log # 변경할 경로 입력
general_log            = 1 # ON

2-3. general_log table 엔진 변경

alter table mysql.general_log engine=MyIsam;

default general_log 테이블은 CSV 엔진을 사용하기 때문에 MyIsam 엔진으로 변경해줍니다.

출처: https://stricky.tistory.com/97 [The DataBase that i am good at]

 

2-4. 변경된 경로를 적용한 후 mysql을 재시작합니다.

service mariadb restart

 

3. 로그 확인

table 로그 확인

select * from mysql.general_log

 

파일 로그 확인

경로 파일 가서 확인하면 된다..

# touch /var/log/general.log

# chown mysql.mysql /var/log/general.log

#/etc/init.d/mysqld restart

 

반응형