[응답]한글코드 실행이 잘안되요...도움주세요 > MySQL

본문 바로가기

사이트 내 전체검색

뒤로가기 MySQL

[응답]한글코드 실행이 잘안되요...도움주세요

페이지 정보

작성자 최고관리자 작성일 21-02-10 17:14 조회 4,426 댓글 0

본문

phpschool.com 에서 퍼온 글입니다.

 #############################################3
박찬웅님의 글
------------------------------------
바이너리로 mysql설치했는데..한글코드를 설정이 안됩니다.
어제 꼬꼬님이 알려주었는데 그대로 했는데 잘안되네요...
저가 잘못한것같습니다.

현재 character-set=latin1이라구 되어있어요..
mysql v3.23이상이구
show variables를 확인하구

my.cnf에서
[mysqld]
 ...
 #set-variable=key_buffer=16M
 set-variable=max_connections=2000
 default-character-set=euc_kr

그리고 reload했습니다.
궁금한것이 있는데

charactre_set, charactre_sets
그리고 language을 볼수 있다면 이것도 모두 한글로 변경하세요라고 했는데 어떻게 변경하는지...?????

--------------------------------------------------------------------
지금 설정된 charactre_set 이 latin1 이면 재대로 환경설정이 안된것
 입니다.

mysql>show variables 명령으로 우선
charactre_sets : latin1 .. euc_kr ..
이렇게 euc_kr문자셋이 지원되는지 확인 하구요.
이 문자셋이 있으면 환경파일을 변경하면됨니다.

그리고 /mysql/share/korea 라는 디렉토리가 있는지 확인하세요
 이것은 mysql message를 한글로 출력해줍니다.

Linux이면 우선 my.cnf가 /etc/my.cnf 에 있는지 확인하세요.
그리고 이 파일을 vi로 열어서
 다음을 추가 하세요.

 [mysqld]
 #다음 language는 full path를 적으세용
language=/mysql/share/korean
 default-character-set=euc_kr

별다른것은 업고 이것이 전부입니다.

만일 저렇게 수정했는데도
mysql>show variables에서
character-set 이 latin1 이렇게 되어있으면 환경파일을 못찾아서
 그런겁니다.

다음처럼 환결파일을 지정할 수 있습니다.
shell>safe_mysqld & --init-file=/etc/my.cnf

그래도 안되면 그냥 문자셋을 지정하세요.
일단 우선 다음처럼 직접 옵션을 줘서 확인해보세요.
shell>safe_mysqld & --default-character-set=euc_kr

그래도 안되면 허걱. 문자셋이 없는가봐요..
다른 버젼을 깔거나 아니면 컴파일 해야되는데...

아주 오래된것 아니면 환경파일로 다 해결되는데 이상하당.....
꼬꼬 바부~ d(^.^)b

이상 꼭지 였습니다. 꾸뻑.

-----------------------------------------------------------------------------
정말 문제군요 쏘뚜가 안된다니.

구러면 mysql>show variables 해보세요
 거기서 character_set, character_sets, language가 어떤 값을
 가지고있는지 확인하세요
 만일 그런 항목조차 없다면(-.-;) mysql이 너무 구버젼이라
 새로 설치해야되고, 만일 항목이 잇다면 (^.^)언넝 환경을 수정해주면
 됨니다.

구러나 야옹님이 답해주신것을 참고하시면 됨니다. (아랫부분 )
 ===================================================================
간단한 명령으로 하는 방법은 모르고여 (지송)
환경 파일로 변경하는것은 알거든여

-주: 이것은 mysql v3.22 이상일때 가능함니다.

우선여 mysql>show variables 을 하셔서 지금 설정된 mysql의
 환경변수를 확인하구여
 우선 맨 밑의 version을 확인 하시구여,
여기서 max_connections값을 보세요. 아마 기본갑인 100 일검니다

 이 값을 올리면됨니다.

우선 mysql설치된곳에 가면요 my-*****.cnf라는 파일이 있습니다.
이건 기본 환결파일 예제걸랑여.

unix, inux면은 다음 디렉토리에서 찾으세요(manual 내용임니다요)

 /etc/my.cnf -> Global options (mysql 전체 option)
 DATADIR/my.cnf -> Server-specific options (db별 option)
 ~/.my.cnf -> User-specific options (사용자별 option)

 my.cnf이 파일이 없으면 my-*****.cnf을 복사해서 넣으세요
 그리고 my.cnf를 열으세요.

여기서 [mysqld]에보면
#set-variable=key_buffer=16M 이렇게 막아 놓은걸 보실꺼여요
 여기다가 추가 설정하면 됨니다. 이렇게

set-variable=max_connections=2000

그리고 다시 mysqladmin으로 reload하시면 됨니다.

windows인경우 c:windows에 가시거나 c:winnt에 가서 우선
my.ini을 찾으세요 없으면 mysql/bin/winmysqladmin.exe을
 실행시키고나면 만들어 짐니다. 이걸 열어서 unix처럼
[mysqld]에 set-variable=max_connections=2000을
 한줄 추가하면 됨니다.

참고로 show variable를 하면 charactre_set, charactre_sets
그리고 language을 볼수 있다면 이것도 모두 한글로 변겅하세요
[mysqld]
 language=c:/mysql/share/korean -> 오류메세지 한글출력
default-character-set=euc_kr -> order by 한글 지원
 이렇게 추가 하시면 오류 메세지가 한글로 나오고요
 그리고 한글 field sort시에 정상으로 됨니다요

 혹시 mysql에서 직접 변겅할 수 있는 명령어를 아시는 분은좀
 올려주세여(히히)

꾸뻑








#########################################################

 [한글 정렬이 제대로 되지 않는 경우]

mysql을 사용하면서도 한참만에야 이 사실을 발견했다.

한글로 된 자료를 'select'문의 'order by'를 사용해서 정렬된 상태로 검색하려고 했는데 한글의 '가나다'가 제대로 정렬되지 않은채 나오는 것이었다.

인터넷을 뒤져봤더니... mysql을 설치할때 바이너리 상태로 설치한경우(이 설치방법이 쉽기 때문에 대부분 이 방법으로 설치를 한다.) 기본 캐릭터 셑이 Latin으로 되어 있어서 한글정렬이 제대로 되지 않는다고 했다. 제대로 하려면 설치시 소스를 컴파일하는 식으로 설치를 하면 된다고 했다.

하지만 다시 설치하기가 귀찮고 또 기존의 자료들을 백업받기 귀찮아서..
더 뒤졌다. 인터넷을... 역시 방법이 있었다.

테이블을 새로 만들때 필드 타입을 binary로 지정하는 방법이었다. (varchar와 char 타입에만 해당된다.) 예를 들면 다음과 같이...

create table TableKiki (
 FieldKiki1 varchar(10) binary,
 FieldKiki2 int
 );

단, 이렇게 한 경우 영문까지도 사전순이 아닌 문자코드순으로(대/소문자별로 따로) 정렬된다는 단점이 있다. 이렇게...

원래의 경우 : computer > MP3 > SunOk > zoo

 binary filed의 경우 : MP3 > SunOk > computer > zoo

 ----------------------->http://kitel.co.kr/~kiki 에서

댓글목록 0

등록된 댓글이 없습니다.

Copyright © beautipia.co.kr. All rights reserved.

contact : webmaster@beautipia.co.kr

PC 버전으로 보기