mysql 한글 입력 문제 (제자리 맴돔 FC3,mysql4.1.10) <해결
페도라 3에서 mysql 4.1.10 버전을 소스 설치 해서 깔았습니다
./mysql 이나 ./mysql -u 유저 -p 데이터 베이스 해도
한글입력이 안됩니다. 한자리에 멈춰서 다음 칸으로 넘어가지
않습니다. 한글이 제자리에 맴돌며 입력이 안됩니다.
터미널 상에서는 한글이 문제 없이 잘 입력 됩니다.
mysql 에서 status; 입니다.
./mysql Ver 14.7 Distrib 4.1.10, for pc-linux-gnu (i686)
Connection id: 26
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 4.1.10-log
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: euckr
Db characterset: euckr
Client characterset: euckr
Conn. characterset: euckr
UNIX socket: /usr/local/mysql/mysql.sock
Uptime: 45 min 53 sec
mysql 소스 설치시 내용입니다.
configure 시
./configure --prefix=/usr/local/mysql --with-charset=euckr
--with-unix-socket-path=/usr/local/mysql/mysql.sock
--with-mysqld-user=mysql
이렇게 했구요
locale 은 ko_KR.utf8 이였는데 export LANG=ko_KR.eucKR
로 바꿔 봤습니다. 그래도 똑같습니다.
utf8 일때는 터미널상 에러 메세지나 모든것이 잘 나왔습니다만
eucKR 로 바꾸면 네모로 깨져서 나옵니다.
그리고 검색도중 vi ~/.bashrc 에서 export LC_ALL=ko_KR.eucKR
과 export LANG=ko_KR.eucKR 해도 똑같았습니다.
/usr/local/mysql/share/mysql/my-large.cnf 를 /etc/my.cnf
로 바꿔야 한다고 해서 바꿨습니다. (large 는 메모리 보고 선택
했습니다.)
거기서
# The MySQL server
[mysqld]
language=korean
default_character_set=euckr
port = 3306
socket = /usr/local/mysql/mysql.sock
저렇게 추가 했습니다만 상태는 똑같았고
다만 검색 도중
export LANG=en_US.iso885915
요렇게 해보라고 해서 해봤더니 한글이 제자리에서 멈춰서
지워지는게 아니라(mysql) 입력은 되는데 ㅁㅁㅁㅁ 네모로
보입니다.
한글 쓰는것 때문에 유니코드에 대한 정보를 찾아봐도
제가 원하는 답은 찾질 못했네요.
mysql상에서 한글 데이터 베이스 입력 문제 해결과
터미널상의 한글이 제대로 보일수는 없는걸 까요?
데이터 베이스 만들때 사용하는
create database test character set euckr;
이렇게 해도 한글 자체가 먹혀 들지 않습니다.
제자리에서 맴돌뿐....
도움 부탁드립니다.
p.s utf8 UTF-8은 같은건가요? euc-KR eucKR euc_KR 도 똑같이
인식하나요?
제가 찾아보니 eucKR이 아니라 euc_kr인것 같더군요.즉, ./
제가 찾아보니 eucKR이 아니라 euc_kr인것 같더군요.
즉, ./configure하실때 with-charset을 euc_kr로 해보세요.
(/usr/local/share/mysql/charset/Index 에서 확인해 보시면 됩니다.)
환경변수는 eucKR로 하시면 될 것 같긴한데...
환경변수에서 utf8과 UTF-8은 동일하게 인식하는 것 같은데 euc-KR이나 eucKR, euc_KR은
잘 모르겠네요. 제가 알기론 eucKR로 알고있고 locale을 정할때도 ko_KR.eucKR로
해야만 한다고 알고 있습니다.
------------------------------
좋은 하루 되세요.
default_character_set = euc_krMySQL에
default_character_set = euc_kr
MySQL에서는 euc_kr 이라고 적어 주어야 하더군요.
터미널에서는 export LANG=ko_KR.eucKR 로 적어주시면 될겁니다.
UTF-8 터미널에서는 EUC-KR 한글은 깨져서 보입니다.
hanterm-classic을 사용하면 UTF-8과 EUC-KR 사이를 쉽게 바꿔서
터미널에서 볼 수 있습니다. 물론 LANG 변수를 그에 맞게 바꾸어 줘야 합니다.
Be Creative For Fun!!
흠..
지우고 다신 ./configure 할때 charset만 euc_KR 로 지정 했을때 에러입니다
checking "character sets"... configure: error: Charset 'euc_KR' not available. (Available are: binary armscii8 ascii big5 cp1250 cp1251 cp1256 cp1257 cp850 cp852 cp866 dec8 euckr gb2312 gbk geostd8 greek hebrew hp8 keybcs2 koi8r koi8u latin1 latin2 latin5 latin7 macce macroman sjis swe7 tis620 ucs2 ujis utf8).
가능한것이 가장 비슷한것이 euckr 이라해서 바꿔서 했더니 인스톨은
잘 됩니다.
결과는 똑같습니다. 버전이 4.1.10 이라서 그런가요? 버전 뭐 쓰세요?
mysql 만 /usr/loca/ 에가서 rm -rf mysql 한뒤 다시 깔면 되는거죠?
답변해주신 두분 감사드립니다. 한동안 삽질이 계속 될듯
합니다...^^
ps 찾아보니 mysql 4.1 버전 이후부터는 charset euc_kr 이
euckr 로 바뀌었다고 하네요.
해결했습니다!!
해결 했습니다.
하하하 ㅜ.ㅜ
mysql 4.1.10 버젼의 charset 문제로 한글입력 안되는 분들이
종종 있어서 검색 해본 결과
우선 export LANG=ko_KR.euc_KR 로 변화시켜도
다시 터미널 열고 locale 하면 LANG=ko_KR.UTF8 로 되있었습니다.
그래서 /usr/share/locale/locale.alias 열어서 euckr 정확한 표기어?를 봤습
니다 그리곤 /etc/sysconfig/i18n 열어서
LANG="ko_KR.UTF-8"
SUPPORTED="ko_KR.UTF-8:ko_KR:ko"
이렇게 되어있던걸
LANG="ko_KR.eucKR"
SUPPROTED="ko_KR.UTF-8:ko_KR:eucKR"
이렇게 고쳤습니다 (근데 ko_KR:eucKR ko_KR.eucKR 뭐가 맞는건지요?
둘다 해도 한글은 잘 입력 되는데 궁금합니다. '.' 과 ':' 의 의미를..)
그리고 나서 export LANG=en_US.iso885915 를 실행 시켜주고선
mysql 들어가보니 됩니다..ㅜ.ㅜ
근데 제가 무슨 짓을 한거죠? 우선 터미널상과 모든 유니코드 통일시킨것
은 알겠는데 마지막에 export LANG=en_US.iso885915 는 무슨 코드죠?
영어 로 하는건가요? export 는 언제까지 유효한가요? 아까 보니
고치고 나서 뒤돌아보면 또 i18n에 지정 된걸로 되어있더라구요.
export 좀 설명해주세요. Locale 은 지금 사용하는 언어코드 정도로 생각
하면 되는건가요?
질문이 두서 없더라도 잘 집어주시길 바랍니다.^^
감사합니다. 도움이 컷습니다.
(페도라3,mysql4.1.10, 아파치,php 연동시 발생한 문제입니다.)
p.s 제가 검색하다 결정적인 해결 키를 찾은 게시물또한 링크합니다
그분께도 감사드립니다.
http://database.sarang.net/?inc=read&aid=23335&criteria=mysql&subcrit=&id=&limit=20&keyword=%C7%D1%B1%DB+%C0%D4%B7%C2&page=1
댓글 달기