MySQL 로그 파일 관리









     MySQL 로그 소개



    MySQL은 일반적으로 3종류의 로그가 있습니다.


    1) 에러로그

    - MySQL 구동과 모니터링, 쿼리(Query) 에러에 관련된 메시지를 포함해서 표시됩니다.



    2) General 로그

    - MySQL에서 실행되는 전체쿼리에 대해서 General 로그를 활성화 시켜서 저장이 가능하며, General 로그를 활성화시키면 MySQL이 쿼리 요청을 받을때 곧 바로 General 로그에 기록됩니다.


    3) UPDATE 로그

    UPDAE 로그는 테이블이 변경될때마다 해당 쿼리가 기록됩니다.



    MySQL 로그관리

    MySQL의 사용량이 많은 사이트는 로그파일이 많이 쌓이므로 디스크에 용량에 문제가 생길수 있으니 서버관리자는 수시로 점검하여 삭제해주셔야 됩니다.





     MySQL 로그 설정하기





    이포스팅에서는 MySQL 5.1 이상에서 설정하는 방법이며 MySQL 5.1 이하에 버전에서는 설정이 안될수도 있습니다.



    1. MySQL 에러로그 설정


    1) MySQL 에러로그 경로 설정

    [root@web lib]# vi my.cnf
    [mysqld]
    log-error=/var/log/mysql.log
    

    MySQL 설정파일에 에러로그의 경로를 지정하시면 됩니다.



    2) MySQL 에러로그 권한설정

    [root@web log]# chmod 644 mysql.log
    [root@web log]# chown mysql:mysql mysql.log
    



    3) MySQL 재시작

    [root@web log]# service mysqld restart
    




    2. General 로그 설정


    1) MySQL 로그관련 정보 확인

    show variables where Variable_name in ('version','log','general_log');
    +---------------+------------+
    | Variable_name | Value      |
    +---------------+------------+
    | general_log   | OFF        |
    | log           | OFF        |
    | version       | 5.1-log |
    +---------------+------------+
    3 rows in set (0.00 sec)
    

    위 명령어로 확인 시의 log상태와 버전상태를 확인할수 있으며 로그부분이 OFF로 되어있으니 이분을 ON으로 바꿔주셔야 됩니다.



    2) MySQL General 로그 파일 위치확인

    mysql> show variables like 'general%';
    +------------------+--------------------------+
    | Variable_name    | Value                    |
    +------------------+--------------------------+
    | general_log      | OFF                      |
    | general_log_file | /var/log/mysql/web.log   |
    +------------------+--------------------------+
    2 rows in set (0.00 sec)
    

    또한 위명령어로 사용하여 로그위치도 같이 파악하시면 됩니다



    3) MySQL General 로그 활성화

    mysql> set global general_log=ON;
    Query OK, 0 rows affected (0.01 sec)
    



    4) MySQL General 로그 활성화 확인

    mysql> show variables where Variable_name in ('log','general_log');
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | general_log   | ON    |
    | log           | ON    |
    +---------------+-------+
    2 rows in set (0.00 sec)
    


    3. MySQL UPDATE 로그 설정


    1) MySQL UPDATE 로그 경로 설정

    [root@web lib]# vi my.cnf
    [mysqld]
    log-update = /var/mysql/log/update.log
    



    3) MySQL 재시작

    [root@web log]# service mysqld restart
    


    Posted by Server-talk 서버이야기