리눅스, mariaDB 캐릭터셋 UTF8 설정 방법

통상 마리아DB의 기본 캐릭터 셋(Character set)은 latin1입니다. 그러나 latin1은 긴 문자열을 처리하지 못하는 등 제약이 있어 보통 utf8이 많이 사용됩니다.

 

이런 이유로 마리아db를 설치한 뒤엔 기본 캐릭터 셋을 utf8로 설정하는 과정을 거치게 됩니다.

 

마리아db의 기본 캐릭터 셋을 확인합니다.

MariaDB[none]> 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                         |
+--------------------------+----------------------------+
14 rows in set (0.01 sec)

3개 파일에 캐릭터셋 설정을 추가합니다. client.cnf는 없을 수 있는데, 없으면 직접 만들면 됩니다.

  • client.cnf
  • mysql-clients.cnf
  • server.cnf

 

파일은 아래의 경로로 진입하면 있습니다.

$ /etc/my.cnf.d/

각 파일에 vi 명령어를 이용해서 편집합니다.

 

/etc/my.cnf.d/client.cnf

[client]
default-character-set=utf8

 

/etc/my.cnf.d/mysql-clients.cnf

[mysql]
default-character-set=utf8

[mysqldump]
default-character-set=utf8

 

/etc/my.cnf.d/server.cnf

[mysqld]
collation-server = utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

이제 마리아 db를 재시작하면 변경한 캐릭터 셋이 적용됩니다.

 

참고로 캐릭터셋 변경 전 create database를 했다면 해당 db는 변경되기 전 캐릭터 셋으로 만들어졌기 때문에 지우고 다시 만들어야 합니다.

반응형

댓글

Designed by JB FACTORY