마리아 디비 General Log

blzae·2024년 8월 28일

General Log 설정

show variables like 'gen%';

+------------------+--------------------------+
| Variable_name    | Value                    |
+------------------+--------------------------+
| general_log      | OFF                      |
| general_log_file | mariadb-setting-test.log |
+------------------+--------------------------+

general_log는 off 상태

  • 로그 파일 경로는 디폴트 경로로 잡혀 있음
# MriaDB General Log Localtion
general_log = off
general_log_file = /var/lib/mysql/query_log/general/db_general.log

my.cnf 파일에 general_log 설정을 추가 한다.

  • off 상태로 설정한다.
service mariadb restart

my.cnf 수정사항을 반영한다.

show variables like 'gen%';

+------------------+-------------------------------------------------+
| Variable_name    | Value                                           |
+------------------+-------------------------------------------------+
| general_log      | OFF                                             |
| general_log_file | /var/lib/mysql/query_log/general/db_general.log |
+------------------+-------------------------------------------------+

general 로그 파일의 위치가 변경 된 것을 확인 할 수 있다.

show variables like 'data%'

+---------------+-----------------+
| Variable_name | Value           |
+---------------+-----------------+
| datadir       | /var/lib/mysql/ |
+---------------+-----------------+

현재 데이터 경로를 확인 해본다.

/var/lib/mysql 이 데이터 경로로 설정 되어 있으니 그 하위에 로그 저장 폴더를 만들어야겠다.

이미 /var/lib/mysql/ 하위에 로그 파일 경로로 디폴트로 잡혀 있다.

cd /var/lib/mysql/

mkdir query_log # 쿼리 로그 폴더 생성
chown mysql:mysql /var/lib/mysql/query_log # query_log 폴더 소유자, 그룹 mysql 변경

------------------------------------------------------------------------------------
drwxr-xr-x   3 mysql mysql        21 Sep 14 13:08 query_log # 소유자/그룹 변경 확인
------------------------------------------------------------------------------------

mkdir /var/lib/mysql/query_log/general # general 로그 저장 폴더 생성
chown mysql:mysql /var/lib/mysql/query_log/general # general 폴더 소유자, 그룹 mysql 변경

------------------------------------------------------------------------------------
drwxr-xr-x 2 mysql mysql    6 Sep 14 13:08 general
------------------------------------------------------------------------------------

touch /var/lib/mysql/query_log/general/db_general.log # general 로그 저장 파일 생성
chown mysql:mysql /var/lib/mysql/query_log/general/db_general.log # general 로그 파일 소유자, 그룹 mysql 변경

------------------------------------------------------------------------------------
-rw-r--r-- 1 mysql mysql  0 Sep 14 13:16 db_general.log
------------------------------------------------------------------------------------

로그 파일 저장 폴더와 파일 생성 과정이고 소유자와 그룹을 mysql 로 변경하여 마리아 디비가 접근 읽기, 쓰기 가능하게 만들어준다.

정상 동작 확인

set global general_log = on

general_log는 항상 동작할게 아니라 필요시에 동작하기 위해서 my.cnf 수정이 아닌 set을 통해 변경을 해준다.

사용 후에는 off로 변경 해준다.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| query_log          |
| test               |
+--------------------+
5 rows in set (0.00 sec)

MariaDB [(none)]> use query_log
Database changed
MariaDB [query_log]> show tables;
Empty set (0.00 sec)

다양한 쿼리를 실행 해본다

/usr/sbin/mysqld, Version: 10.2.43-MariaDB-log (MariaDB Server). started with:
Tcp port: 3306  Unix socket: /var/lib/mysql/mysql.sock
Time                 Id Command    Argument
230914 13:32:42	    8 Query	show databases
230914 13:33:00	    8 Query	SELECT DATABASE()
		    8 Init DB	query_log
		    8 Query	show databases
		    8 Query	show tables
230914 13:33:03	    8 Query	show tables

general 로그를 열어보면 위에서 실행 했던 기록이 남는다.

진행 중 발생했던 에러

ERROR 29 (HY000): File '/query_log/general/db_general.log' not found (Errcode: 2 "No such file or directory")

/query_log/general/db_general.log 파일을 찾을 수 없다는 에러가 발생 했다.

데이터 디렉터리가 /var/lib/mysql 을 잡고 있으니 my.cnf에 해당 /var/lib/mysql을 제외하고 적어줘도 괜찮은 줄 알았는데 아닌 것 같다.

전체 경로를 적어준다.

general_log_file = /var/lib/mysql/query_log/general/db_general.log

0개의 댓글