달력

82019  이전 다음

  •  
  •  
  •  
  •  
  • 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
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;

이렇게 변경해도 한글깨지는 현상이 계속됩니다.

아시는분 도움 부탁드립니다... ^^

이 글에 대한 댓글이 총 3건 있습니다.

잘은 몰라두 ..my.ini 에 추가를 함 돼는듯 싶은데요..mysql 설치본은..모든 언어설정이 가능하도록 셋팅돼어 컴파일했다고 알고 있읍니다.

그곳에 추가해보세요..그럼 해결될수도..

이준석(maroon)님이 2005-01-20 10:56:24에 작성한 댓글입니다.

해결했습니다. 메뉴얼 정독이 정답이네요.

 

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입니다. ^^

아는남자님이 2005-01-20 11:00:42에 작성한 댓글입니다. Edit

저도 이 문제 때문에 골치 아팠던 적이 있습니다.

단순하게 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 을 사용하여 해결할 수 있지만 이렇게 하면 영문자의 대소문자가 구분되어 버립니다.

천명재(audwox)님이 2005-01-21 11:36:07에 작성한 댓글입니다.
이 댓글은 2005-01-21 11:40:34에 마지막으로 수정되었습니다
Posted by Tornado tornado