MYSQL, MariaDB 한글 검색 안될때 케릭터셋 설정방법
환경 : window, MariaDB 10.1
수정할 일이 있어 기존에 실에서 사용하던 디비를 가져와 테스트 디비를 새로 생성했는데
실에서 잘 되던 한글 검색이 잘 되지 않았다.
원인은 테스트 디비의 케릭터셋 설정 문제.
디비의 케릭터 셋을 확인한다.
show variables like 'char%';
역시나 character_set_server 가 latin1 으로 설정 되어 있었다.
개발 소스에서는 utf-8 인코딩을 해 보내는데 디비에서는 latin1으로 받으니
한글이 제대로 넘어가지 않은 것이다.
[해결방법]
MariaDB가 설치된 폴더의 data폴더로 이동한다.
(보통 C:\Program Files\MariaDB 10.1\data)
여기에는 my.ini 파일이 있다. 이곳을 설정을 바꾸어 주면 된다.
필자의 경우 아래와 같이 되어 있었다.
[mysqld]
datadir=C:/Program Files/MariaDB 10.1/data
port=3306
sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
default_storage_engine=innodb
innodb_buffer_pool_size=1012M
innodb_log_file_size=50M
[client]
port=3306
이곳을 아래와 같이 수정한다. (수정된 파일은 아래서 다운로드 하면 됩니다.)
[mysqld]
datadir=C:/Program Files/MariaDB 10.1/data
port=3306
sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
default_storage_engine=innodb
innodb_buffer_pool_size=1012M
innodb_log_file_size=50M
init_connect="SET collation_connection = utf8_general_ci"
init_connect="SET NAMES utf8"
character-set-server = utf8
collation-server = utf8_general_ci
[client]
port=3306
default-character-set = utf8
[mysqldump]
default-character-set = utf8
[mysql]
default-character-set = utf8
수정된 파일은 아래서 다운로드.
위와 같이 수정을 한 후 다시 케릭터셋을 확인한다.
show variables like 'char%';
하지만 결과는 전과 같다.
케릭터 셋의 경우 디비서버를 재부팅 해주어야 적용이 된다.
서비스로 이동한다. 윈도우키를 누르고 서비스 라고 입력한 후 들어가면 된다.
서비스에서 MySQL을 찾아 재부팅한 후 다시 케릭터셋을 확인해 보자.
위와 같이 character_set_server 가 변경되었다.
그럼 해결.
'Database > 기초' 카테고리의 다른 글
Null 처리 방법(oracle, mssql, mysql), 데이터베이스 NULL처리 방법 (0) | 2014.04.16 |
---|---|
Oracle 오라클 설치 후 TNS, 리스너 설정 및 SQL Gate 활용 접속확인 (0) | 2014.02.06 |
Oracl 오라클 설치방법 (0) | 2014.02.06 |
댓글