본문 바로가기

MySQL

[MySQL] Mysql 한글 깨짐

MySql 한글 깨짐 해결법. 

 

 

1. my.cnf 파일 수정


일반적으로 /etc/my.cnf 경로에 존재하지만, 설치 과정에 따라 my.cnf 파일 경로가 다를 수 있습니다. 

경로를 잘 모르시면,

 

find / -name my.cnf 로 찾아보세요.

 

경로를 확인했으면,

 

vi /etc/my.cnf

 

아래 항목처럼 utf8 로 설정을 변경 또는 추가 합니다.

한가지 팁을 드리자면, 인터넷에 나와있는 예제들중에 [mysqld] 항목 아래에 default-charcter-set 이 있는데,

mysql 5.5 버전에선 동작하지 않습니다. 아무래도 최신버전에서 삭제된 항목 같습니다.

혹시 있다면, 주석처리 또는 지워 주시면 되겠습니다.

 

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

symbolic-links=0

#default-character-set=utf8

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


[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid


[client]

default-character-set = utf8


[mysqldump]

default-character-set = utf8


[mysql]

 

default-character-set = utf8

2. mysql 재시작

 

# service mysqld restart

 

3. 확인 or 테이블 캐릭터 셋 변경

 

설정을 변경하더라도 기존에 이미 만들어진 테이블들은 기존의 설정을 유지합니다.

다시 설정해줍니다. 

 

mysql> alter table test_company convert to charset utf8;

Query OK, 1 row affected (0.02 sec)

Records: 1  Duplicates: 0  Warnings: 0


mysql> alter table test_user_role convert to charset utf8;

Query OK, 3 rows affected (0.01 sec)

Records: 3  Duplicates: 0  Warnings: 0


mysql> alter table test_user_roles_permission convert to charset utf8;

Query OK, 1 row affected (0.02 sec)

Records: 1  Duplicates: 0  Warnings: 0

 

[출처] [MySQL] Mysql 한글 깨짐|작성자 이초록