• 북마크
  • 추가메뉴
어디로 앱에서 쉽고 간편하게!
애플 중고 거래 전문 플랫폼
오늘 하루 보지 않기
KMUG 케이머그

소프트웨어

[App 개발] 맥에서 mysql 사용시 한글 깨짐문제 질문드립니다.

본문

인터넷과 몇몇 포럼에 문의하며 이래저래 바꾸어보아도 도저히 해결되지않아서 여기에도 질문을 드립니다. ㅠㅠ

우선 mysql 5.1버전을 dmg파일로 받아서 설치했습니다.
그리고 cocoaMySql도 설치했습니다.
기본적인 명령어는 잘 실행이 되고, 이클립스에서 연동되는 것을 확인했습니다.
그런데 한글이 되지않습니다.
그래서 인터넷을 뒤진 결과 /etc/my.cnf라는 파일을 수정하면 된다고 해서 보았는데 /etc/my.cnf라는 파일이 없어서 그냥 새로 만들어서 저장한 후 해보니 그래도 되지 않습니다.
더 조사해본 결과 mySql 설치폴더 속에 support-files 폴더에 있는 my-*.cnf 파일 중 하나를 my.cnf로 변경하고, 한글을 처리하는 내용을 삽입한 후 /etc/my.cnf 저장하면 된다고 해서 그리 해보았는데도 되지 않습니다.
테이블을 몇번을 지우고 만들고 반복해봐도 한글은 계속 깨져서 나옵니다.
혹시 다른 과정이 있는것인지. 아니면 방법이 잘못된것인지 모르겠습니다.
조언을 부탁드립니다.
0 0
로그인 후 추천 또는 비추천하실 수 있습니다.
포인트 8,141
가입일 :
2003-11-14 00:04:53
서명 :
미입력
자기소개 :
미입력

최신글이 없습니다.

최신글이 없습니다.

댓글목록 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님께 깊히 감사드립니다.

전체 2 건 - 1 페이지
2008.07
25

열람중 [App 개발] 맥에서 mysql 사용시 한글 깨짐문제 질문드립니다.

인터넷과 몇몇 포럼에 문의하며 이래저래 바꾸어보아도 도저히 해결되지않아서 여기에도 질문을 드립니다. ㅠㅠ 우선 mysql 5.1버전을 dmg파일로 받아서 설치했습니다. 그리고 cocoaMySql도 설치했습니다. 기본적인 명령어는 잘 실행…

2008.05
03

[App 개발] objective-C 에 관련된 질문입니다. 도와주세요~~~~

objective-C 에 관련된 내용 두가지만 질문드리고 싶습니다. 1. NSTextView에 수치 결과를 나열하는 과정에서 "\\t" 을 사용하여 표현하고 싶은데, 이게 어느 길이 이상이 초과되면 "\\n"을 사용하지 않았는데도 스스로 줄바꿈이…