티스토리 뷰

SERVER

DB 캐릭터셋

rediate.will 2019. 4. 30. 12:52

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)

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함