[MariaDB] DB 캐릭터셋을 utf-8으로 설정하기

Posted on 2017-03-05 12:38:19


MariaDB(Mysql)의 DB 캐릭터셋을 확인해 보니, 일부분의 변수값이 latin1으로 설정되어 있었다. 문자가 깨진다거나 하는 문제는 없었지만, 왠지 꺼림직하여 모두 utf-8으로 변경하기로 하였다.

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)

 

문서는 MariaDB 매뉴얼을 참고하였다.

https://mariadb.com/kb/en/mariadb/setting-character-sets-and-collations/

 

디폴트 캐릭터셋을 latin1에서 utf-8으로 변경하기 위해, 아래 3개의 파일에 캐릭터셋 설정을 추가하였다.

• /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_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8


그리고 MariaDB를 재시작한 후에 DB의 캐릭터셋을 다시 확인해보니, latin1이였던 부분도 모두 utf-8으로 변경된 것을 확인할 수 있었다. 다만 기존에 저장된 데이터까지 utf-8 형식으로 변경되는 것은 아니므로, 경우에 따라서는 database를 지우고 다시 생성한 후 데이터를 다시 insert해야 한다.

sudo systemctl restart mariadb --> MariaDB 재시작

MariaDB [(none)]> 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/share/mysql/charsets/ |
| collation_connection | utf8_general_ci |
| collation_database | utf8_unicode_ci |
| collation_server | utf8_unicode_ci |
| completion_type | NO_CHAIN |
| concurrent_insert | AUTO |
| connect_timeout | 10 |
+--------------------------+----------------------------+
14 rows in set (0.00 sec)

 



Related Posts

[MariaDB] autocommit 설정을 변경하는 방법 2017-03-08 19:00:18