latin1 DB data를 euckr DB 로 넣기 (iconv 이용)

리눅스/MySQL|2015. 1. 16. 11:05
반응형

latin1 DB를 dump 받아서 그대로 euckr DB에 넣으면 캐릭터셋이 다르므로 한글이 깨지게 됩니다.

아래와 같은 절차를 통해 한글이 깨지지 않게 이전을 할 수 있습니다.

(여기에서는 euckr DB인데 테이블을 latin1로 생성해서 쓰고있을 경우를 설명)

 

우선 latin1 DB를 사용하는곳에서 dump를 받습니다.

 

mysqldump -uroot -p sysdocu > sysdocu.sql

 

latin1 에서 dump 받을 경우 utf8 로 저장되기 때문에 아래와 같이 iconv 로 캐릭터셋 변환 작업을 해주어야 합니다.

 

iconv -c -f utf8 -t latin1 sysdocu.sql > sysdocu_euckr.sql

 

변경 후 neulwon_euckr.sql 을 vi 로 열어보면 테이블 생성을 latin1으로 하므로

vi 편집기를 이용하여 euckr로 변경해줍니다. (utf8 문자도 euckr로 변경)

 

vi sysdocu_euckr.sql

 

:%s/latin1/euckr/g        <-- latin1를 euckr로 일괄 변경

:%s/utf8/euckr/g          <-- utf8을 euckr로 일괄 변경

  

수정된 파일을 저장을 하여 DB를 이전할 서버로 보냅니다.

그리고 이전할 서버에서 neulwon 이라는 DB 생성 후 데이타를 import 합니다. 

 

mysql -uroot -p sysdocu < sysdocu_euckr.sql

 

mysql 로그인하여 select 해보면 한글이 정상적으로 보이는 것을 확인할 수 있습니다.

반응형

댓글()