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)
출처
로그인하면 댓글을 남길 수 있습니다.