프로그램/database

mysql utf-8 setup guide

mulderu 2011. 3. 14. 01:36
db 작업.. 특해 개발자에게 한글처리는 사실 좀 고통입니다.
특히 오픈소스 디비들은 개발자가 잘 세팅하지 않으면... 고생길이죠.

좋은분이 좋은글을 써준신걸 스크랩 했습니다.. http://blog.artgia.com/335


아래데로 하고 개발시 모든 코드를 utf-8로 설정하세요.
그래도 안되는게 있담면 characterset filter  로 강제로 request characterset 을 utf-8 로 강제로 지정하세요...
일단 DB 쪽은 아래와 같이 하시면 만사 오케이 ~


1. etc/my.cnf (또는 my.ini) 에서 캐릭터셋 수정
[client]
#password = your_password
default-character-set=utf8

[mysqld]
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

[mysql]
default-character-set=utf8

2. 환경변수를 모두 수정후 mysql 서비스 재시작

3. mysql에서 캐릭터셋 확인
# mysql
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use test
Database changed
mysql> show variables like 'c%';
+--------------------------+----------------------------+
| Variable_name                  | Value                                |
+--------------------------+----------------------------+
| character_set_client          | utf8                                    |
| character_set_connection  | utf8                                    |
| character_set_database     | utf8                                   |
| character_set_results        | utf8                                    |
| character_set_server         | utf8                                    |
| character_set_system        | utf8                                    |
| character_sets_dir            | /usr/share/mysql/charsets/ |
| collation_connection         | utf8_general_ci                    |
| collation_database           | utf8_general_ci                     |
| collation_server               | utf8_general_ci                     |
| concurrent_insert             | ON                                     |
| connect_timeout               | 5                                        |
+--------------------------+----------------------------+
12 rows in set (0.00 sec)

* MySql에서 데이터베이스 생성
mysql>CREATE DATABASE PAINBLOG DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;