한글이 안 되는 경우
MySQL 사용 시 한글이 안 될 경우 세 부분을 의심해 보아야 한다.
1. MySQL 서버 characterset 설정.
2. 사용하고 있는 툴의 문자 인코딩 지원 종류.
3. 쿼리를 저장한 파일 혹은 데이터 파일의 문자 인코딩 방식.
한글을 사용하려면 문자 인코딩 방식을 euc-kr나 Unicode를 지원해야 한다. 요즘 쿼리 툴은 대부분 Unicode 중 utf-8을 지원하기 때문에 2번은 크게 문제가 되지 않는다. 물론 확인은 해 봐야 한다. 3번도 무료로 사용할 수 있는 Sublime Text 등을 이용하면 쉽게 확인할 수 있다. 문제는 1번이다.
MySQL을 설치하고 utf-8을 기본으로 제공해 주면 좋은데 그렇지가 않다. 다음은 설치 후 MySQL의 상태를 확인한 화면이다.
mysql> status -------------- mysql Ver 14.12 Distrib 5.0.95, for redhat-linux-gnu (x86_64) using readline 5.1 Connection id: 20 Current database: Current user: root@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 5.0.95 Source distribution Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: latin1 Db characterset: latin1 Client characterset: latin1 Conn. characterset: latin1 UNIX socket: /var/lib/mysql/mysql.sock Uptime: 6 days 5 hours 2 min 54 sec Threads: 1 Questions: 41 Slow queries: 0 Opens: 13 Flush tables: 1 Open tables: 6 Queries per second avg: 0.000 -------------- mysql>
문자 인코딩 방식이 latin1이다. 이러니 한글이 안되지... utf-8으로 바꿔보자.
MySQL Characterset 바꾸기
문자셋을 바꾸려면 /etc/my.cnf 파일의 해당 부분에 다음 내용을 추가한다.
# vi /etc/my.cnf [mysqld] ... default-character-set=utf8 collation-server=utf8_unicode_ci character-set-server=utf8 character-set-client-handshake=FALSE ... [client] default-character-set=utf8 ...
그리고 나서 재시작. 다시 상태를 확인해 보면,
mysql> status -------------- mysql Ver 14.12 Distrib 5.0.95, for redhat-linux-gnu (x86_64) using readline 5.1 Connection id: 2 Current database: Current user: root@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 5.0.95 Source distribution Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 UNIX socket: /var/lib/mysql/mysql.sock Uptime: 22 sec Threads: 1 Questions: 5 Slow queries: 0 Opens: 12 Flush tables: 1 Open tables: 6 Queries per second avg: 0.227 -------------- mysql>
이제 한글을 사용할 수 있다.

댓글 없음:
댓글 쓰기