728x90
반응형

MySQL 데이터베이스 이전하기 euckr->utf8

오래전 구축 된 시스템을 이전 하려니 걸리는 것이 참 많다.

 

1. MySQL3 -> MySQL5로 이전하기
2. euckr 데이터를 utf8로 이전하기

 

1. MySQL3->MySQL5 로 이전
데이터는 다음과 같이 추출하였다.

#덤프
mysqldump --skip-extended-insert --skip-quote-names --default-character-set=latin1 --compatible=mysql40 -uuser -ppass -h192.168.100.1 db > db.sql

 

복원을 했더니 아래와 같이 오류가 난다.

mysql -uuser -ppass db < db.sql
ERROR 1064 (42000) at line 18: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'TYPE=MyISAM' at line 14

 

MySQL3에서 덤프를 한 것이라 지금은 없어진 TYPE이라는 키워드 때문이다.
편집기나 vi를 이용해서 ENGINE으로 변경해 주면 된다.

#vi 사용시
:%s/TYPE/ENGINE/
62 substitutions on 62 lines 74559,1 99%

 

 

2. ecukr을 utf8로 이전하기

위와 같이 이전을 했는데 한글이 모두 제대로 표현되지 않는다.
몇 번의 시도를 했는데 그 때마다 '?????' 이거나 깨진 문자로 표시된다.
성공한 방법만 기술해 보면.

1) 위에서와 같이 덤프한다

#덤프
mysqldump --skip-extended-insert --skip-quote-names --default-character-set=latin1 --compatible=mysql40 -uuser -ppass -h192.168.100.1 db > db.sql

 

2) utf8로 변환한다

2)-1 편집기(editplus)를 이용해서 UTF8(BOM없음)로 저장한다
또는 iconv로 변환한다.
2)-2 iconv -f euckr -t utf8 db.sql -c > db-2.sql
putty 터미널을 UTF8로 맞추고 아래와 같이 하여 한글이 제대로 보이는지 확인한다.
cat db-2.sql | more

 

3) 데이터베이스를 만들고 복원한다

데이터베이스를 만들 때 utf8로 지정한다.
#복원
mysql -uuser -ppass db < db-2.sql

 

4) 이렇게 하면 끝~ 일줄 알았는데...
heidisql 을 통해서 보면 한글 데이터들이 잘 보이는데, php를 통해서 사이트에서는 여전히 깨져 보인다.
아래와 같이 euckr로 변경해 주어야 한다.
참 이해가 안되는 부분이다.

데이터베이스 접속 관련 소스에 맨 마지막 줄을 아래와 같이 추가한다.
물론 실패한 부분은 빼고.

<?php
$dbip="192.168.100.2";
$dbid="user";
$dbpasswd="pass";
$dbname="db";

$connect = mysql_connect($dbip, $dbid, $dbpasswd) or die("please dbconnection confirm~!");
mysql_select_db($dbname,$connect);


//mysql_query("SET NAMES 'UTF8'",$connect); ==> 실패
//mysql_set_charset('utf8', $connect); ==> 실패
mysql_set_charset('euckr', $connect); ==> 성공
?> 

 

 

끝~

 

#mysql3 #mysql5 #euckr #utf8

728x90
SMALL
Posted by gromet

블로그 이미지
나는 운이 좋은 사람이다 나는 나날이 점점 더 좋아진다 내가 하는 선택과 행동은 반드시 성공으로 이어진다 내게는 인내력과 지속력이 있다 네게는 좋은것들만 모여든다
gromet

공지사항

Yesterday
Today
Total
반응형

달력

 « |  » 2024.12
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

160x600