블로그 이미지
LanSaid

calendar

1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

Recent Post

Recent Comment

Recent Trackback

Archive

2014. 4. 7. 16:00 DB/MySQL
my.cnf(리눅스)나 my.ini(윈도우)에서 편집하여


default-character-set=utf8
character-set-client-handshake=FALSE

이런 것 넣어서  db 언어셋 설정(혹은 통일) 하는 경우가 많을 것이다.

그런데 간혹 시스템을 구축하다보면 위 설정으로 인해서 mysql이 구동이 안될 때가 있다.
자세히는 기억안나는데 5.5버전 이후 버전은  default-character-set=utf8 이게 안먹힌다.

그렇다면 저 옵션 때문에 5.5 이전 버전만 써야하는가?
다행스럽게도 그렇지는 않다. 단지 설정 방법이 바뀌었을 뿐이다.

출처 : 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/

# client 부분밑에 추가
[client]
default-character-set = utf8
 
# mysqld 부분밑에 추가
[mysqld]
init_connect = SET collation_connection = utf8_general_ci
init_connect = SET NAMES utf8
character-set-server = utf8
collation-server = utf8_general_ci
 
# mysqldump 부분밑에 추가
[mysqldump]
default-character-set = utf8
 
# mysql 부분밑에 추가
[mysql]
default-character-set = utf8
 
[저장후 나가기]
 
# Mysql 재시작
service mysqld restart 또는 /etc/init.d/mysqld restart
 
# UTF8 확인하기
# Mysql 접속
mysql -u root -p [엔터]
 
# 현재 캐릭터셋 확인
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                                      |
+--------------------------+-----------------------------------------+
 
# 위와 같은 형태로 나오면 변경 완료


이런식으로 해줘야한다.(wamp 라면  [wampmysqld])

 

사족- 개인적인 사견이므로 카더라 이니 믿지는 말것!!
1. set name utf8 같은 걸로는 원하는 기능을 만족하지 않을 수 있다.
2. 서버의 설정값을 기본으로하여 클라이언트가 따라가는 형식으로 바뀐 것으로 알고 있다. 
posted by LanSaid