Django로 서버개발을 처음하는데 온갖 각종 삽질들을 하루하루 해 나아가고 있다. 오늘은 당해도 당해도 매번 놓치는 mysql에서 한글 저장하기.
오늘의 에러는 아래와 같다.
Warning: Incorrect string value: '\xED\x95\xB4\xEB\xA5\x9C' for column 'firstname' at row 1
현재 character set 확인방법: show variables like 'c%';
MySQL을 처음 설치하면 기본 character set 이 latin1로 되어있기 때문에 utf8로 바꿔야 한글 저장이 가능함.
/etc/my.cnf를 아래와 같이 편집한다.
[client] 부분에 추가
default-character-set = utf8
[mysqld] 부분에 추가
init_connect = SET collation_connection = utf_general_ci
init_connect = SET NAMES utf8
character-set-server = utf8
collation-server = utf8_general_ci
[mysqldump] 부분에 추가
default-character-set = utf8
저장 후 mysql 재시작
service mysqld restart 혹은 /etc/init.d/mysqld restart
mysql 접속 후 다시 show variables like 'c%'; 로 확인했을때 아래와 같이 나오면 변경완료.
+--------------------------+----------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir |/usr/local/server/mysql/share/charsets/ |
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
| completion_type | NO_CHAIN |
| concurrent_insert | AUTO |
| connect_timeout | 10 |
+--------------------------+----------------------------------------+
출처: http://www.imcore.net/mysql-5-5-%ED%95%9C%EA%B8%80-%EA%B9%A8%EC%A7%90%EB%AC%B8%EC%A0%9C-%ED%95%B4%EA%B2%B0%ED%95%98%EA%B8%B0-utf8/
'dev' 카테고리의 다른 글
JNI 각 type별 Signature 알아내기 (0) | 2013.09.07 |
---|---|
git cheet sheet (0) | 2013.03.01 |
AWS에서 Elastic IP를 활용해서 Internal instance 접속하기 (0) | 2013.02.21 |
RESTful API in 15 minutes (0) | 2013.01.15 |
ssh-agent 실행하기 (0) | 2013.01.08 |