MySQL 의 binary_log 를 분석하기 위해 more / cat 등으로 열어 보면 글자가 깨져서 표시됩니다.
정상적으로 읽기 위해서는 변환 작업이 필요합니다.
- 로그파일 전체를 변환 : #mysqlbinlog [log 파일명] > [파일명].sql
- 특정 기간의 로그내용만 변환 :
#mysqlbinlog --start-datetime='2016-03-01 00:00:00' --stop-datetime='2016-03-21 23:59:59' [log 파일명] > [파일명].sql
- 특정 형식의 쿼리 내용만 변환 :
#mysqlbinlog [log 파일명] | grep -i -e "^create" -e "^update" | more // 콘솔로 출력
#mysqlbinlog [log 파일명] | grep -i -e "^create" -e "^update" > [파일명].sql // 파일로 출력
* 기타 다양한 조건을 적용할 수 있다 (구글신께 물어 보세요)
하지만 변환 중 아래와 같이 오류가 발생하는 경우가 있습니다.
-원인은 mysqlbinlog 가 실행될 때 /etc/my.cnf 파일을 읽어 들이는데 mysqlbinlog가 default-character-set 설정을
인식할 수 없어 발생한다.
해결책은 my.cnf 파일에서 [client] 섹션에 있는 default-character-set = utf8 을 주석처리 후 mysqlbinlog 명령을 실행한다.
작업이 완료된 후 my.cnf 의 default-character-set의 주석은 해제 한다.
(일부 블로그에서는 mysql을 재 시작하라고 하는데 그럴 필요는 없다.)
my.cnf 는 mysql 이 구동시 한번만 읽기 때문에 중간에 변경을 하여도 현재 서비스에는 영향이 없다.
mysqlbinlog 또한 구동시에 my.cnf 읽는다.
'Database & Data > MYSQL' 카테고리의 다른 글
[MySQL] 트리구조 탐색 쿼리 - 모든 부모 node 탐색 (3) | 2016.05.09 |
---|---|
[MySQL] mysqldump 스크립트 자동화시 계정에 관한 경고 처리 (0) | 2016.03.31 |
[MySQL] 간편한 slow log File 초기화 방법 (0) | 2016.03.15 |
MYSQL 실행계획 분석 방법 요약 (3) | 2016.02.25 |
MySQL Dump 파일 복원시 주석까지 복원하는 방법 (0) | 2015.12.09 |