latin1 DB data를 euckr DB 로 넣기 (iconv 이용)
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 해보면 한글이 정상적으로 보이는 것을 확인할 수 있습니다.
'리눅스 > MySQL' 카테고리의 다른 글
mysql-table-sync를 이용한 MySQL 데이터 동기화 (0) | 2015.01.16 |
---|---|
select 결과를 파일로 저장하기 (0) | 2015.01.16 |
mysql 바이너리 파일로 DB 복구 (0) | 2015.01.16 |
테이블내 특정 문자 치환 방법 (SQL Injection 공격 복구) (0) | 2015.01.16 |
예약어로 인해 복구가 되지 않을경우 (0) | 2015.01.16 |