Archive for December, 2008

Mysql 복구 시 EUCKR_BIN 관련 문제

Mysql에서 euckr_bin collation으로 백업을 할 경우, 일반적으로 제대로 복원이 되지 않는다.

같은 버전 같은 서버 같은 DB에서도 euckr_bin으로 백업을 받아서 복원해도 한글이 깨지는 문제가 발생. Mysql이 바보 같은건지 모르겠지만...(오늘 걸린 시간을 생각하면 바보라고 믿고 싶은....)

아무리 구글링을해도 신탁이 없어서.. 난감한 사태 발생. 원본데이터는 이미 삭제된 상태라 남은것은 백업파일뿐.

해결 방법은 백업된 sql 내의 insert 데이터중 0x로 시작하는 부분을 convert(0x~~~ using utf8)로 헥스데이터를 문자열로 변환

정규표현식을 사용해서 변환하면 상대적으로 빨리 끝낼 수 있다.

정규표현식을 지원하는 에디트플러스같은 텍스트 편집기에서 (0x[0-9a-zA-z]*,) 로 데이터를 찾아서 convert(1 using utf8),로 바꿔주면 끝

에디트 플러스나 EMEditor는 ~1로 그룹을 정하지만, Tester등에서는 $1로 변환하기 때문에 각종 편집기로 해보느라 시간을 많이 잡아 먹었다.

PSPAD의 경우는 변환하다가 먹통이 되는 상태가 발생,결국 Emeditor체험판으로 변경에 성공해서 미션 완료.

모든 작업이 끝난다음에 EditPlus에도 1으로 지원하는것을 발견했다T_T

결국 백업할때 utf8이나 그냥 euckr_korean_ci로 백업하는것을 권장...

Tags:

Comments