MySQL 4.1.8 RPM 설치시 한글설정. | |||||
작성자 | 아는남자 | 작성일 | 2005-01-19 21:06:12 | 조회수 | 411 |
---|
MySQL 4.1.8 RPM 버전으로 인스톨시 기본 언어로 latin_1 이 잡히네요. 설치시에 옵션으로 언어설정이 가능한지, 설치후에 언어설정 변경이 가능한지 궁금합니다. ALTER DATABASE langtopia DEFAULT CHARACTER SET euckr; 이렇게 변경해도 한글깨지는 현상이 계속됩니다. 아시는분 도움 부탁드립니다... ^^ |
잘은 몰라두 ..my.ini 에 추가를 함 돼는듯 싶은데요..mysql 설치본은..모든 언어설정이 가능하도록 셋팅돼어 컴파일했다고 알고 있읍니다.
그곳에 추가해보세요..그럼 해결될수도..
해결했습니다. 메뉴얼 정독이 정답이네요.
mysql> SET character_set_client = euckr;
mysql> SET character_set_results = euckr;
mysql> SET character_set_connection = euckr;
mysql> ALTER DATABASE [DB명] DEFAULT CHARACTER SET euckr;
commit;
이렇게 하면 한글 잘됩니다.
환경은 Linux + MySQL 4.1.8입니다. ^^
저도 이 문제 때문에 골치 아팠던 적이 있습니다.
단순하게 set names euckr 을 해주시면 됩니다.
이 명령은 Server, Connection 의 문자셋을 euckr 로 설정합니다.
mysqld 의 시작옵션이나 my.cnf 의 [mysqld] 섹션에 default-character-set = euckr 옵션을 지정하면 Db, Client 의 문자셋이 euckr로 설정됩니다. mysql 프로그램에서 \s 를 해보면 확인할 수 있습니다. set names 대신 [mysql] 섹션에 default-character-set 을 사용할 수 있는데 이렇게 하면 4.1.8에서는 mysqladmin 이 해당 옵션을 이해하지 못해 제대로 실행이 안됩니다. 4.1.9에서는 mysqladmin 프로그램도 default-character-set 옵션을 사용할 수 있도록 변경되었습니다.
문자셋과 관련하여 주의할 점은 일단 latin1 등의 다른 문자셋으로 설정된 필드에 데이터를 입력한 후 alter 명령을 통해 해당 필드의 문자셋을 euckr로 설정하면 무자비하게 깨진다는 것입니다.
create table test (merong varchar(20) collate latin1_general_ci);
이렇게 만들어진 테이블에 한글 데이터를 넣은 후 필드를 euckr 로 변경하려면 다음처럼 해야 합니다.
alter table test modify merong binary(100);
alter table test modify merong varchar(20) collate euckr_korean_ci;
binary 로 바꾸면 문자셋 특성이 사라지기 때문에 이런 변환과정을 거쳐야 합니다(메뉴얼에 의하면). 그냥 바꾸면 문자들이 손상됩니다.
바이너리 배포판에서 기본적으로 설정된 latin1 은 정렬을 위해 latin1_swedish_ci 을 사용하는데 이 경우 '이' 와 '인'이 같은 문자로 인식되는 식이어서 unique 키를 설정하는데 문제가 발생합니다. 이것은 latin1_bin 등의 collation 을 사용하여 해결할 수 있지만 이렇게 하면 영문자의 대소문자가 구분되어 버립니다.
이 댓글은 2005-01-21 11:40:34에 마지막으로 수정되었습니다
'SQL' 카테고리의 다른 글
[펌] ‘6개의 열쇠’로 데이터 모델링의 고수가 되자 (0) | 2005.03.02 |
---|---|
mysql 4.0.x 이하 버전 .. 한글셋팅.. (0) | 2005.02.16 |
[펌] MySQL의 SQL (0) | 2005.01.14 |
STOP WORD (2) | 2005.01.14 |
[MySQL] 다수의 테이블에서 데이터 동시 삭제하기 (0) | 2004.10.27 |