웹모아
웹모아[손님] 검색   로그인 / 회원가입    



 
백업/기타
 


Mysql-4.1.13 의 한글 문제. | 리눅스
  2007-03-06 00:07:13 댓글:(0)   조회:465



Character-set이 문제가 되어 기존 서버의 있던 데이터들이 모두 깨져서 보이는 것이다. 

해결 방법은 간단했다. 컴파일 시에 character-set 옵션을 지정해서 euckr로 지정해 주는 것이다. 

기존 서버의 MySQL 버전은 3.2 였는데 Mysqldump를 떠서 4.1.13버전에 import를 시키면 한글 데이터의 경우 모두 깨져 보였지만, character-set=euckr 옵션을 주고 컴파일을 하고 나서 import를 하자 모두 정상으로 되었다. 

근데 특이한 것은 4.1.13에서는 테이블에 Default Character set 이 항상 정의되어 있다는 것이다. 지정하지 않으면 컴파일시의 디폴트값인 Latin1으로 되고 이후 생성되거나 import 되어지는 모든 테이블에서 디폴트값인 Latin1으로 문자셋이 세팅된다. 따라서 반드시 컴파일시에 문자셋을 euckr로 해주어야 한다.

그럼 이미 import 되어버린 테이블의 경우 어떻게 할까?

alter table Tour default character set euckr;

위와 같이 테이블의 default character set 을 euckr로 바꾸어 주면 된다. 문제는 이렇게 하게 되면 테이블안의 컬럼의 경우의 문자셋은 그대로 Latin1이라는 것이다. 컬럼들을 모두 아래의 과정을 거쳐 변환해줘야 한다.

alter table Tour modify CateCode binary(700);
alter table Tour modify CateCode varchar(20) character set euckr collate euckr_korean_ci default NULL;

binary로의 변환을 한번 거쳐줘야 한다. binary는 문자셋 특성이 없기 때문에 Latin1문자들의 문자셋 속성을 없애게 된다. 그렇다고 한글 특성까지 없어지는 것은 아니다. 두번째 과정에서 기본문자셋을 지정해주면된다.

하지만 이것도 문제인것이 컬럼이 엄청날경우 쌩노가다가 아닐수 없다는 것이다. 그때는 스크립트를 쓰던지 아니면 컴파일할때 문자셋을 지정해 주던지 해야 한다.

그런데 배포판의 경우는 어떻게 해야 하남? 다 지우고 재 컴파일을 해야 하나? 그럴수 있는 관리자라면 문제가 없지만 그리고 APM으로 이미 연동이 되어버린 경우는 참 난감하다.

아직 MySQL에 데이터를 입력하기 전이라면 /etc/my.cnf 의 [mysqld], [mysql] 세션에 아래와 같이 한줄 추가해준다.

default-character-set=euckr

또한 mysql 터미널로 접속하고나서 아래의 명령어로 지정된 문자셋을 알수 있다.

mysql> show variables like '%character\_set%';

+--------------------------+-----------------------------------+
| Variable_name            | Value                             |
+--------------------------+-----------------------------------+
| character_set_client     | euckr                             |
| character_set_connection | euckr                             |
| character_set_database   | euckr                             |
| character_set_results    | euckr                             |
| character_set_server     | euckr                             |
| character_set_system     | utf8                              |
| character_sets_dir       | /www2/mysql/share/mysql/charsets/ |
+--------------------------+-----------------------------------+
mysql>set character_set_client=euckr    <- 문자셋 변경



 댓글 (0)


백업/기타
페이지: 1 / 2   


   XtraBackup을 이용한 MySQL 백업 및 복239
   MySQL DB 백업 및 복구 - mysqldump514
   [MySQL] 리눅스DB를 윈도우DB로 이전(Too436
     [RE] [MySQL] 리눅스DB를 윈도우DB로 이662
   정보통신부 제공 우편번호부 원본파일766
   mysql 원격접속방법718
   가격비교 참고자료(홈마스타)(3) 534
   리눅스에서 PHP 콘솔을 이용한 MySQL DB 백(홈마스타)586
   utf8 환경으로 자료 conversion 성공기(홈마스타)556
Mysql-4.1.13 의 한글 문제. | 리눅스(홈마스타)466
   MySQL 5.0 euckr 문자세팅(홈마스타)513
   mySql 처리 함수(홈마스타)1297
   mysql의 주요 함수(홈마스타)1160
   MySQL 백업(홈마스타)499
   mysql 과 함께 사용되는 명령어 사용법(홈마스타)477
   mysql의 최대 성능 향상 방법(홈마스타)822
   리눅스에서 PHP 콘솔을 이용한 MySQL DB 백(홈마스타)523
   PHP로 MySQL 백업받기(홈마스타)706
     [RE] PHP로 MySQL 백업받기(홈마스타)504
   ORDER BY 에서 조건걸기(홈마스타)575
   백업과 복구(홈마스타)562
   리눅스 서버에서 홈페이지의 DB를 백업할려면?(홈마스타)572
   MySQL 데이터 백업 및 복구 | Database(홈마스타)(1) 830
     [RE] MySQL 데이터 및 구조의 백업 - 실제(홈마스타)565
   mysql 주기적으로 백업하기(홈마스타)625
   웹서버와 DB서버를 분리해서 운영할려면?(홈마스타)760
   백업받는 스크립트(홈마스타)704
   서브 쿼리 지원되는 MySQL 버젼...(홈마스타)599
   MySQL Dump뜨는 방법 및 복구 방법(홈마스타)630
     [RE] MySQL Dump뜨는 방법 및 복구 방법(홈마스타)878
[1]  [2]  

복수단어 검색은 공백(space)로 구분해 주세요. 1





최근 글
[손님]

인기 글
[손님]
[홈마스타] 운전면허 취득절차