[응답]한글코드 실행이 잘안되요...도움주세요
페이지 정보
본문
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 에서
#############################################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 에서
- 이전글Errcode 내용확인 21.02.10
- 다음글MySQL 기본개념 21.02.10
댓글목록
등록된 댓글이 없습니다.