보통 mysql 에 DB를 생성하고, TABLE 을 생성하고
한글로 된 내용을 INSERT 한 후에
"한글 정렬이 안돼요" 라고 얘기하시는 분이 많습니다.

문제의 원인은 대개, 아래와 같은 default 환경을 그대로 사용해서 그런 것인데요.

mysql> show variables where  Variable_name like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     | 
| character_set_connection | latin1                     | 
| character_set_database   | latin1                     | 
| character_set_filesystem | binary                     | 
| character_set_results    | latin1                     | 
| character_set_server     | latin1                     | 
| character_set_system     | utf8                       | 
| character_sets_dir       | /usr/share/mysql/charsets/ | 
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

mysql> show variables where  Variable_name like '%colla%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci | 
| collation_database   | latin1_swedish_ci | 
| collation_server     | latin1_swedish_ci | 
+----------------------+-------------------+
3 rows in set (0.00 sec)



아래와 같이 설정하고 작업을 시작하면
별다른 문제없이 한글 처리를 할 수 있습니다. 

set character_set_client=utf8;
set collation_connection=utf8_general_ci;

 
설정 후 변경된 사항을 확인합니다.

show variables where  Variable_name like '%char%';
show variables where  Variable_name like '%colla%';

 
아래와 같이 간단히 확인할 수도 있습니다.

\s


그 외 부수적인 설정들입니다.

set character_set_results=utf8; 
set collation_database=utf8_general_ci;  
set collation_server=utf8_general_ci;    

Latest update: 2011. 5. 24. 11:51