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 설정을 추가 한다.
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