차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

mariadb_db_캐릭터셋을_utf-8으로_설정하기 [2017/09/01 23:45] (현재)
koov 만듦
줄 1: 줄 1:
 +====== MariaDB DB 캐릭터셋을 utf-8으로 설정하기 ======
 +
 +MariaDB(Mysql)의 DB 캐릭터셋을 확인해 보니, 일부분의 변수값이 latin1으로 설정되어 있었다. 문자가 깨진다거나 하는 문제는 없었지만,​ 왠지 꺼림직하여 모두 utf-8으로 변경하기로 하였다.
 +
 +<WRAP prewrap>
 +<code bash>
 +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)
 +</​code>​
 +</​WRAP> ​
 +
 +문서는 MariaDB 매뉴얼을 참고하였다.
 +
 +https://​mariadb.com/​kb/​en/​mariadb/​setting-character-sets-and-collations/​
 +
 + 
 +
 +디폴트 캐릭터셋을 latin1에서 utf-8으로 변경하기 위해, 아래 3개의 파일에 캐릭터셋 설정을 추가하였다.
 +
 +• /​etc/​my.cnf.d/​client.cnf
 +
 +<WRAP prewrap>
 +<code vim>
 +[client]
 +default-character-set=utf8
 +</​code>​
 +</​WRAP>​
 +
 +• /​etc/​my.cnf.d/​mysql-clients.cnf
 +<WRAP prewrap>
 +<code vim>
 +[mysql]
 +default-character-set=utf8
 +
 +[mysqldump]
 +default-character-set=utf8
 +</​code>​
 +</​WRAP>​
 +
 +• /​etc/​my.cnf.d/​server.cnf
 +<WRAP prewrap>
 +<code vim>
 +[mysqld]
 +collation-server = utf8_unicode_ci
 +init-connect='​SET NAMES utf8'
 +character-set-server = utf8
 +</​code>​
 +</​WRAP>​
 +
 +그리고 MariaDB를 재시작한 후에 DB의 캐릭터셋을 다시 확인해보니,​ latin1이였던 부분도 모두 utf-8으로 변경된 것을 확인할 수 있었다. 다만 기존에 저장된 데이터까지 utf-8 형식으로 변경되는 것은 아니므로,​ 경우에 따라서는 database를 지우고 다시 생성한 후 데이터를 다시 insert해야 한다.
 +
 +<WRAP prewrap>
 +<code bash>
 +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)
 +</​code>​
 +</​WRAP>​
 +
 +===== 출처 =====
 +  * https://​slobell.com/​blogs/​38
 +
  
  • mariadb_db_캐릭터셋을_utf-8으로_설정하기.txt
  • 마지막으로 수정됨: 2017/09/01 23:45
  • 저자 koov