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/
이런식으로 해줘야한다.(wamp 라면 [wampmysqld])
사족- 개인적인 사견이므로 카더라 이니 믿지는 말것!!
1. set name utf8 같은 걸로는 원하는 기능을 만족하지 않을 수 있다.
2. 서버의 설정값을 기본으로하여 클라이언트가 따라가는 형식으로 바뀐 것으로 알고 있다.
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. 서버의 설정값을 기본으로하여 클라이언트가 따라가는 형식으로 바뀐 것으로 알고 있다.
'DB > MySQL' 카테고리의 다른 글
Error 1172 - Result consisted of more than one row (0) | 2015.11.11 |
---|---|
mysqldump 시 Use 'DB이름' 쿼리를 포함하지 않으려면? (0) | 2015.02.24 |
[MySQL] phpmyadmin 을 제외한 별도 프로그램으로 원격 DB 접속 시 알아야할 사항.. (0) | 2014.04.01 |
[MySQL] primary key 와 unique key 차이 (0) | 2014.03.25 |
[MySQL] 131126 MySQL을 이용한 로그인 시스템 (0) | 2013.11.26 |