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

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)
로그인하면 댓글을 남길 수 있습니다.
  • mariadb_db_캐릭터셋을_utf-8으로_설정하기.txt
  • 마지막으로 수정됨: 2017/09/01 23:45
  • 저자 koov