[App 개발] 맥에서 mysql 사용시 한글 깨짐문제 질문드립니다.
복영근
211.♡.189.196
2008.07.25 10:51
3,208
8
0
0
본문
인터넷과 몇몇 포럼에 문의하며 이래저래 바꾸어보아도 도저히 해결되지않아서 여기에도 질문을 드립니다. ㅠㅠ
우선 mysql 5.1버전을 dmg파일로 받아서 설치했습니다.
그리고 cocoaMySql도 설치했습니다.
기본적인 명령어는 잘 실행이 되고, 이클립스에서 연동되는 것을 확인했습니다.
그런데 한글이 되지않습니다.
그래서 인터넷을 뒤진 결과 /etc/my.cnf라는 파일을 수정하면 된다고 해서 보았는데 /etc/my.cnf라는 파일이 없어서 그냥 새로 만들어서 저장한 후 해보니 그래도 되지 않습니다.
더 조사해본 결과 mySql 설치폴더 속에 support-files 폴더에 있는 my-*.cnf 파일 중 하나를 my.cnf로 변경하고, 한글을 처리하는 내용을 삽입한 후 /etc/my.cnf 저장하면 된다고 해서 그리 해보았는데도 되지 않습니다.
테이블을 몇번을 지우고 만들고 반복해봐도 한글은 계속 깨져서 나옵니다.
혹시 다른 과정이 있는것인지. 아니면 방법이 잘못된것인지 모르겠습니다.
조언을 부탁드립니다.
우선 mysql 5.1버전을 dmg파일로 받아서 설치했습니다.
그리고 cocoaMySql도 설치했습니다.
기본적인 명령어는 잘 실행이 되고, 이클립스에서 연동되는 것을 확인했습니다.
그런데 한글이 되지않습니다.
그래서 인터넷을 뒤진 결과 /etc/my.cnf라는 파일을 수정하면 된다고 해서 보았는데 /etc/my.cnf라는 파일이 없어서 그냥 새로 만들어서 저장한 후 해보니 그래도 되지 않습니다.
더 조사해본 결과 mySql 설치폴더 속에 support-files 폴더에 있는 my-*.cnf 파일 중 하나를 my.cnf로 변경하고, 한글을 처리하는 내용을 삽입한 후 /etc/my.cnf 저장하면 된다고 해서 그리 해보았는데도 되지 않습니다.
테이블을 몇번을 지우고 만들고 반복해봐도 한글은 계속 깨져서 나옵니다.
혹시 다른 과정이 있는것인지. 아니면 방법이 잘못된것인지 모르겠습니다.
조언을 부탁드립니다.
0
0
로그인 후 추천 또는 비추천하실 수 있습니다.
최신글이 없습니다.
최신글이 없습니다.
댓글목록 8
nearfri님의 댓글
파일을 저장하셨으면 mysql을 재기동 하셔야죠;;
복영근님의 댓글
당연히 재기동하였습니다. ^^
재기동도 안되어서 재부팅도 해보았습니다.
nearfri님의 댓글
mysql> show variables like '%char%';
latin1 으로 나오는 부분이 없는지 확인해 보세요
이 부분을 utf8 로 고치시면 될 겁니다.
저도 예전에 이거때문에 2일 정도 삽질했던 경험으로 말씀드리는 거라
이래도 안되신다면 저도 모르겠습니다. -_-
복영근님의 댓글
예 ^^
mysql> show variables like '%char%'; 로 확인하여서 latin1 부분을
/etc/my.cnf 파일에서 euckr로 수정하였습니다.
그런데도 아래와 같이 나옵니다.
mysql> show variables like "c%";
+--------------------------+---------------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------------+
| character_set_client | euckr |
| character_set_connection | euckr |
| character_set_database | euckr |
| character_set_filesystem | binary |
| character_set_results | euckr |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql-5.0.51b-osx10.5-x86_64/share/mysql/charsets/ |
| collation_connection | euckr_korean_ci |
| collation_database | euckr_bin |
| collation_server | latin1_swedish_ci |
| completion_type | 0 |
| concurrent_insert | 1 |
| connect_timeout | 5 |
+--------------------------+---------------------------------------------------------------+
character_set_server는 바꾸어도 그대로 latin1으로 나옵니다. ㅠㅠ
이 결과 터미널에서 테이블을 만들고 내용을 한글로 입력한 후 select하면 정상대로 나옵니다...
그런데 jsp를 이클립스로 사용하는데... 이클립스에서 jdbc를 이용하면 한글이 바로 깨지고 맙니다.
nearfri님의 댓글
character_set_server 가 안 바뀌는 이유는 모르겠습니다.
제 컴에 있는 my.cnf 입니다.
[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set=utf8
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer = 16K
max_allowed_packet = 1M
table_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 64K
init_connect=SET collation_connection = utf8_general_ci
init_connect=SET NAMES utf8
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
server-id = 1
그리고 이렇게 나옵니다
mysql> show variables like "c%";
+--------------------------+---------------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql-5.0.51a-osx10.5-x86_64/share/mysql/charsets/ |
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
| completion_type | 0 |
| concurrent_insert | 1 |
| connect_timeout | 5 |
+--------------------------+---------------------------------------------------------------+
아, 디비 테이블이랑 jdbc도 모두 euckr로 설정하신거죠?
복영근님의 댓글
디비 테이블은 euckr로 다 설정했는데...
jdbc는 어떻게 설정할지 모르겠습니다.
인터넷을 보니 jdbc 경로를 설정할 때에
url="jdbc:mysql://localhost:3306/DBname?useUnicode=true&characterEncoding=euckr"
으로 해야한다고 하더군요..
그래서 원래 url="jdbc:mysql://localhost:3306/DBname"으로 되어있는것을 위에처럼 수정하였더니 아예 jdbc 접속이 되질 않습니다.
제가 사용하는 방법은 이클립스를 사용하는데, 이클립스의 workspace의 경로를 설정하여 사용하고 있습니다.
톰캣은 5.5 버젼이고, mysql은 5.0입니다.
jdbc의 connection pull 설정을 위하여 ~~~/workspace/servers/Tomcat v5.5 Server at localhost-config/context.xml을 추가하였고, context.xml의 내용은 다음과 같습니다.
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/DBname"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
loginTimeout="10"
maxWait="5000"
username="myid"
password="mypass"
testOnBorrow="true"
url="jdbc:mysql://localhost:3306/DBname"
/>
</Context>
이 내용중에서 url="jdbc:mysql://localhost:3306/DBname?useUnicode=true&characterEncoding=euckr" 바꾸면 디비 인식이 안됩니다.... 설정이 잘못된건가요?
nearfri님의 댓글
<a href=http://cheolgi.tistory.com/tag/mysql target=_blank>http://cheolgi.tistory.com/tag/mysql </a>
이게 도움이 될런지 모르겠네요.
구글링 좀 해보시죠. 대충 검색해봐도 이렇게 해서 해결했다라는 식의 글이 꽤 되던데요.
복영근님의 댓글
nearfri님 소개글을 이리저리 적용시켜본 가운데 해결하였습니다.
url="jdbc:mysql://localhost:3306/DBname?useUnicode=true&characterEncoding=euckr" 내용 중에서 useUnicode=true 를 제거하니 정상대로 접속이 되고 한글이 먹힙니다.
왜 제가 검색한 모든 문구에서는 이 문장이 들어갔었는지 모르겠군요..
기본적으로 true라는 설명이 있기는 한데, 혹시 이 문구를 제거하면 다른 문제가 생기는 것은 아니겠죠?
일단 한글 문제가 해결되어서 정말 시원합니다
도움을 주신 nearfri님께 깊히 감사드립니다.