본문 바로가기

Eureka/MySQL

[Solution] How to change Character Set in MySQL

MySQL을 하다보면 종종 한글 표기 문제로 캐릭터 셋(character set)이 언급되곤 한다.
해당 문제를 해결하는 방법이다. 우선 아래와 같이 명령어를 입력하면 다음 내용이 표기된다.

mysql> show variables like 'c%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
| collation_connection     | utf8_general_ci            |
| collation_database       | latin1_swedish_ci          |
| collation_server         | latin1_swedish_ci          |
| completion_type          | NO_CHAIN                   |
| concurrent_insert        | AUTO                       |
| connect_timeout          | 10                         |
+--------------------------+----------------------------+


위 내용에 character_set_database, character_set_server, collation_database, collation_server 항목들을 보면
latin1로 설정이 되어 있는 것을 확인 할 수 있다. utf8로 바꿔주자.
아래 명령어로 파일을 열고 적당히 해당 항목에 내용을 추가하면된다.

$ sudo vi /etc/mysql/my.cnf
[client]
default-character-set   = utf8

[mysqld]
init-connect            = 'SET NAMES utf8'
init_connect            = 'SET CHARACTER SET=utf-8'
character_set_server    = utf8

[mysqldump]
default-character-set   = utf8

[mysql]
default-character-set   = utf8


그리고 아래 명령어로 mysql 서버를 재시작한다.

$ sudo service mysql restar

'Eureka > MySQL' 카테고리의 다른 글

[Solution] Can't reset MySQL (MariaDB) root password  (1) 2016.11.30