서버관리 삽질 기록

MySQL의 인코딩 문제

ForceCore 2007. 1. 19. 10:01

서버A에서는 euckr로 저장된 데이터를

서버B에서는 UTF-8기반으로 저장하려고 한다.

 

서버A에서 euckr파일로 덤프를 받은뒤

iconv를 이용해 utf-8로 변환하고 임포트 하는 방법을 써보았으나

사람 이름...

b5_김영조

b5_김영수

이 것이 인간인 나에게는 unique하고 중복되지 않는 항목이지만

임포트 명령을 내리니까

b5_김영??가 중복된다고 하면서 안 되는 것이었다 -_-

 

실제로 DB에 접속해서 내용물을 보니까 각 사람의 이름 마지막 글자가 사라진 상태로 DB에 인서트 되어있었다 -_-;;

 

일단은 euckr의 덤프를 그대로 (!) 서버에 삽입했다.

그 때는 성공하더군...

데이터가 깨져 보이는게 문제가 발생... ㄱ-;;

 

그럼 왜 사람 이름의 마지막 글자가 ??가 된 것인가?

사람 이름을 수용하는 varchar(10)이 불충분했기 때문이다 -ㅠ-;;;

varchar(10)이라고 하면 10글자가 아니라 5글자가 담기게 되는 것 같다.

varchar(20)이라고 하여 수정.

 

주제와 맞지 않는 것이지만 MySQL 문법도 조금씩 바뀌어서 애먹었다.

가령... table안에 table이라는 칼럼명은 넣지 못 한다든지....;