mysql 4.0.x 버전에서 4.1.x 버전과 character-set이 달라서 데이터를 이전할때 약간 고생한다.

그래서 간단하게  이전 설명을 해볼까 한다.

1. 4.1에서 덤프 받을때 --default-character-set=euckr 옵션을 주고 덤프 받는다.

# /usr/local/mysql/bin/mysqldump --default-character-set=euckr -u xxx -p xxx > xxx.sql

2. 덤프받은 xxx.sql 파일을 vi 편집기로 열고 편집

" DEFAULT CHARSET=euckr" 삭제       :%s/ DEFAULT CHARSET=euckr//g
" collate euckr_bin" 삭제                     :%s/ collate euckr_bin//g
euckr -> euc_kr로 변경                       :%s/euckr/euc_kr/g

ex)

perl -pi -e 's/DEFAULT CHARSET=euckr//g' ./dbname.sql
perl -pi -e 's/collate euckr_bin//g' ./dbname.sql
perl -pi -e 's/euckr/euc_kr/g' ./dbname.sql
perl -pi -e 's/character set euc_kr//g' ./dbname.sql
perl -pi -e 's/ENGINE/TYPE/g' ./dbname.sql
perl -pi -e "s/CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP/\'0\'/g" ./dbname.sql
perl -pi -e 's/collate utf8_bin//g' ./dbname.sql
perl -pi -e 's/character set utf8//g' ./dbname.sql

3. xxx.sql을 4.0이하 버전에서 복구
# /usr/local/mysql/bin/mysql -u xxx -p xxx < xxx.sql

2010/01/21 13:04 2010/01/21 13:04

트랙백 주소 :: http://odoacer.kr/trackback/215

댓글을 달아 주세요

[로그인][오픈아이디란?]