mysql 한글 깨짐 (해결)

[결론]
– mysql 을 기본 설치시 캐릭터 셋이 latin1
– latin1 으로는 한글이 정상 표기가 되지않음
– 이미 만들어진 테이블의 컬럼의 캐릭터 셋을 바꾼후 새로 insert 한 데이터 부터 정상 처리됨.

[참고사이트]
http://blog.beany.co.kr/archives/405
http://roqkffhwk.tistory.com/142

[삽질기록]
라즈베리파이에 mysql을 설치해서 jdbc를 이용하여 프로그래밍 연습중 한글이 깨지는 현상 발견Cap 2015-02-08 15-33-11-743

웹에서 검색해보니 캐릭터셋 문제로 mysql 설치시 흔하게 발생되는 문제로 보여짐

1. db에서 캐릭터셋 확인법
(1) 관리자 계정으로 mysql 접속
Cap 2015-02-08 15-37-39-868
 (2) mysql 에서 캐릭터셋 확인 sql 수행
– status
Cap 2015-02-08 15-52-10-376

– show variables like ‘c%’
Cap 2015-02-08 15-39-13-359

2. 조치방법
(1) mysql 설정파일 수정
– 위치 : /etc/mysql/my.cnf
– 추가내용

[client]
#하단삽입
default-character-set = utf8

[mysqld]
#하단삽입
character-set-client-handshake=FALSE
init_connect="SET collation_connection = utf8_general_ci"
init_connect="SET NAMES utf8"
character-set-server = utf8
collation-server = utf8_general_ci
 
[mysqldump]
#하단삽입
default-character-set = utf8

[mysql]
#하단삽입
default-character-set = utf8

(2) mysql 리스타트
– sudo service mysql restart

3. 확인
(1) 설정변경 확인
Cap 2015-02-08 16-09-33-809

Cap 2015-02-08 16-09-54-365

(2) 프로그램에서 다시 조회
Cap 2015-02-08 16-13-08-324

– 여전히 값이 깨진다. 이전 인코딩시 들어간 데이터는 여전히 깨지는 것으로 보인다.
– 새로운 값으로 insert 후에 어떻게 되는지 확인해보자  ( mysql -uroot -p sample 로 접속후 )
Cap 2015-02-08 17-58-17-168

– 여전히 에러발생. 다른 문제인듯 함.
Cap 2015-02-08 17-56-30-316
Cap 2015-02-08 17-57-40-045
– 이미 만들어진 sample DB는 latin1 으로 캐릭터 셋이 맞춰져 있으므로 당시 만든 테이블의 컬럼의 캐릭터 셋을 바꿔줘야함

[Solution]

ALTER TABLE `sample`.`address` 
CHANGE COLUMN `zipCode` `zipCode` VARCHAR(10) CHARACTER SET 'utf8' NULL DEFAULT NULL , 
CHANGE COLUMN `siDo` `siDo` VARCHAR(20) CHARACTER SET 'utf8' NULL DEFAULT NULL ;

Cap 2015-02-08 18-07-50-259
  Cap 2015-02-08 18-08-40-358

해결!!

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s