latin1 로 저장된 db 를 euckr 또는 utf8로 변환하는 방법

예전에 latin1로 저장된  db를 그냥 옵기게 되면 한글이 깨져서 보이지 않게 됩니다.

그럴때 사용하기 위한 방법 입니다.

1. 백업하기
   mysqldump -u{username} -p{password} {dbname} --default-character-set latin1 > {dump}.sql
   여기서 제일 중요한 것이 --default-character-set latin1 입니다.
   이것이 없으면 온전하게 백업이 되지 않으니 여러가지로 어렵습니다.

2. 문자셋 변환하기
    (문제가 되는 것이 보통 이 과정에서 메모장이나 에딕터를 이용하게 되면 깨져서 복원을 할때 에러가 발생합니다.)   
    utf8로 변환 할때
    iconv -c -f cp949 -t utf-8  원본파일명  > 변환될 파일명.sql
    euckr 이라면 변환 할때
    iconv -c -f cp949 -t euckr 원본파일명  > 변환될 파일명.sql

3. 복원될 테이블 구조 변환하기
   (문자셋 변환이 정상적으로 되었으니 이제 에딕터나 메모장을 사용해도 됩니다.)
    NAMES latin1;  =>  SET NAMES utf8; 으로 변경합니다.
    CHARSET=latin1;  => DEFAULT CHARSET=utf8; 으로 변경합니다. 
    귀찬으면 latin1 =>  utf8; 변경해도 됩니다.
    새이름으로 저장하시고,

5, 디비 생성
    이때 utf8_general_ci 로 생성 합니다.

6, mysql 을 다시 시작 합니다.

7, 디비 복원
mysql --default-character-set utf8 -u{username} -p{password} {utf8-dbname} < {dump}.sql 

   위 같이 하니 문제가 없군요
|

댓글 1개

명쾌한 내용, 감사합니다.
댓글을 작성하시려면 로그인이 필요합니다. 로그인

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요. 나누면 즐거움이 커집니다.

+
제목 글쓴이 날짜 조회
15년 전 조회 5,171
15년 전 조회 6,220
15년 전 조회 3,314
15년 전 조회 4,638
15년 전 조회 3,831
15년 전 조회 9,828
15년 전 조회 4,307
15년 전 조회 5,302
15년 전 조회 4,889
15년 전 조회 2만
15년 전 조회 3,513
15년 전 조회 1.3만
15년 전 조회 7,388
15년 전 조회 6,378
15년 전 조회 8,485
15년 전 조회 5,417
15년 전 조회 5,786
15년 전 조회 1.3만
15년 전 조회 4,870
15년 전 조회 4,030
🐛 버그신고