log파일 변경하기

mysql서버를 운영하다 보면 로그파일이 너무 커져 있는 경우가 있다.

주로, general 로그와 slow 로그 일건데..

이 로그를 정리하기 위해서는 간단히

 

mysql>FLUSH LOGS;

 

를 이용하면 된다. flush logs는 현재 로그파일을 닫고 새로운 로그 파일을 생성해서 기록하게 해주는 명령어다.

다만, flush logs 했을때 기존 로그 파일들은 수정하고 새로 생성할 수 있는 권한이 있어야 하는데,

로그 기록을 하고 있는 디렉토리에 mysql 계정에 해당 권한이 없으면 정상적으로 동작되지 않는다.

로그 기록되고 있는 위치를 확인하고, mysql 계정이 파일을 수정하고 새로 만들수 있는 권한이 있는지 확인해보기 바란다.

 

이제, 위와 같이 flush logs로만 로그 파일을 새로 변경하지 못할때 수동으로 변경하는 방법을 해보자.

간단하다.

 

#1. 로그 기록 설정을 중지하고.

#general log

mysql>SET GLOBAL general_log = 'OFF';

#slow log
mysql>SET GLOBAL slow_query_log = 'OFF';

 

#2. 기존 로그파일을 백업 또는 삭제한다.
[root@]# mv mysql-slow.log mysql-slow.log.old
[root@]# mv mysqld.log mysqld.log.old

 

#3. 새로운 로그 파일을 만들고 권한을 부여한다

[root@]# touch mysql-slow.log

[root@]# chown mysql:mysql mysql-slow.log

[root@]# touch mysqld.log

[root@]# chown mysql:mysql mysqld.log

 

#4. flush logs를 해서 기존 로그 파일을 닫고 새로운 파일에 로그를 기록할 수 있도록 해준다.
mysql>FLUSH LOGS;

 

#5. 로그기록 설정을 다시 ON으로 변경한다.


mysql>SET GLOBAL general_log = 'ON';
mysql>SET GLOBAL slow_query_log = 'ON';

 

#6. 로그 기록 상태를 확인해 본다.