Database/기초

MYSQL, MariaDB 한글 검색 안될때 케릭터셋 설정방법, 변경방법

리커니 2017. 2. 20.
반응형

 

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

 

수정된 파일은 아래서 다운로드.

 

 

my.zip

 

위와 같이 수정을 한 후 다시 케릭터셋을 확인한다.

 

show variables like 'char%';

 

하지만 결과는 전과 같다.

케릭터 셋의 경우 디비서버를 재부팅 해주어야 적용이 된다.

 

서비스로 이동한다. 윈도우키를 누르고 서비스 라고 입력한 후 들어가면 된다.

 

 

서비스에서 MySQL을 찾아 재부팅한 후 다시 케릭터셋을 확인해 보자.

 

위와 같이 character_set_server 가 변경되었다.

 

그럼 해결.

 

반응형

댓글

💲 추천 글