[mysql] latin1 로 저장된 db 를 euckr 또는 utf8로 변환하는 방법
페이지 정보
본문
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
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
추천0
관련링크
댓글목록
등록된 댓글이 없습니다.