설치관련

MySQL 데이타베이스 (DB) euckr => utf8 로 변환하여 이전 작업 하기

by 햇빛소년 posted Mar 10, 2014 Views 4393 Likes 0 Replies 0
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

국산 통나무 수공예 남원제기, 남원목기

자료가 도움이 되셨다면
혼수용품제수용품 필요시
남원제기 공식 홈페이지 http://남원제기.kr
남원목기 공식 홈페이지 http://otchil.kr
에서 구매 해 주세요
정성껏 모시겠습니다.
 

1.  원본 소스 서버에서 덤프 작업하기


스키마 파일 상단에 utf8 정의

]# echo "set names utf8;" > jegizb_schema.sql


데이타 파일 사단에 utf8 정의

]# echo "set names utf8;" > jegizb_data.sql


스키마 파일 덤프

]# mysqldump -u root -p --no-data --default-character-set=euckr jegizb >>jegizb_schema.sql


데이타 파일 덤프

]# mysqldump -u root -p --no-create-info --default-character-set=euckr jegizb >>jegizb_data.sql


스키마 파일에서 euckr 제거

]# perl -pi -e 's/ DEFAULT CHARSET=euckr//' jegizb_schema.sql


스키마 파일에 euckr 대신 utf8 삽입

]# perl -pi -e 's/SET NAMES euckr/SET NAMES utf8/' jegizb_schema.sql


iconv로 스키마 파일 utf8로 변환 작업

]#iconv -c -f euckr -t utf-8 jegizb_schema.sql > jegizb_schema.sql.utf8


iconv로 데이타 파일 utf8로 변환 작업

]# iconv -c -f euckr -t utf-8 jegizb_data.sql > jegizb_data.sql.utf8



2.  원본 서버에 덤프 받은 파일을 이전 서버로 복사 하기.


1. 이전 서버에서 rsync로 원본 서버로 부터 덤프 받은 파일을 가져 온다.



3.  이전 할 서버에서 복원 작업을 한다.


ㄱ.  DB생성

]#  mysqld -u root -p -e "CREATE DATABASE jegizb DEFAULT CHARACTER SET utf8 collate utf8_general_ci;"


ㄴ.  생성한 DB에 덤프 받은 파일 두개 schema, data 두파일을 삽입한다.

]# mysql -u root -p --default-character-set=utf8 jegizb < /opt/jegizb_schema.sql.utf8

]# mysql -u root -p --default-character-set=utf8 jegizb < /opt/jegizb_data.sql.utf8


  그런데 나는 위의 방법이 에러가 자꾸 에러가 났으며, 성공 했을 지리도 한글이 깨져 보였다.


======================================================


그리하여, 다른 방법을 강구 하기로 하였다.


phpmyadmin을 손쉽게 이용하기로 하였다.


1. 원하는 DB를 phpmyadmin에 접속하여


ㄱ. 커스텀 - 모든 옵션들을 표시함

ㄴ. 파일로 저장     파일 문자셋:utf8

ㄷ. 구조와 데이터 모두

ㄹ. Add CREATE DATABASE / USE statement


체크한 다음 실행하여 sql파일로 저장 하였다.


2. 파일을 MC 편집기로 열어 제일 상단에


ㄱ. set names utf8;       삽입

ㄴ. euckr --->  utf8로 변환

ㄷ. euckr_korean-ci   --->  utf8_general_ci 로 변환

ㄹ. MC 편집기로 열어서 한글이 제대로 보이면 이미 utf8로 변환 된 것이니 변환 작업 없이 그대로 진행하면 될것이고

     만약 한글이 깨져 보인다면 utf8 변환 스크립트로 변환 작업 후 진행 하면 된다.

ㅁ. 나의 경우는 이미 한글이 정상적으로 보이므로 변환 작업없이 바로 진행 하였다.


3. 이제 덤프 받은 백업 nwcnt.sql을 복원 해 보자.


ㄱ. 작업 전 에러가 날 수 있으니 phpmyadmin에 접속하여 백업 받은 DB를 삭제하고 반드시


]# service mysql restart     꼭 해 주고


]# mysql -u root -p < nwcnt.sql       백업시 DB생성 옵션까지 줬으므로 한방에 DB생성 및 데이타 까지 복구 한다


]# service mysql restart     반드시 실행 해 주고 phpmyadmin에 접속하여 myisam, utf8_general_ci 확인하고 한글 정상 확인.


자, 이제 myisam euckr euckr_korean_ci DB를 myisam utf8 utf8_general_ci로 변환 작업 무사히 마쳤다.




   

Articles

1 2 3 4 5 6 7 8 9 10