|
|
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로 변환 작업 무사히 마쳤다.