MariaDB 캐릭터셋 UTF8 설정 방법

MariaDB 서버를 설치하면 기본적으로 캐릭터셋이 latin~으로 설정되어 있다. 이 정체 불명의 캐릭터셋은 한국에선 쓸일도 없거니와 한글을 지원하지 않기 때문에 써서도 안 된다. 그래서 서버 설치 직후 필수적으로 캐릭터셋은 UTF8~로 바꿔줘야 한다.

MariaDB character set 변경

현재 character set 확인

직접 설치했다면 그냥 바로 utf8 변경을 하면 되고 다른 사람이 설치한 환경이라면 혹시 바뀌었는지 확인해볼 필요는 있다. 물론 대부분 안 바꿔놓는다고 보면 된다.

마리아db에 접속해서 char이 포함되는 변수를 확인한다.

MariaDB [(none)]> show variables like '%char%';
마리아db 캐릭터셋 확인

mariadb 서버 버전에 따라 조금씩 다를 수는 있는데 latin1 형식으로 되어 있는 게 확인된다.

캐릭터셋 UTF8 변환

캐릭터셋 변환은 마리아db 서버에 대한 설정 값을 지정하는 my.cnf 파일에서 한다(윈도우는 my.ini). 일반적으로 경로는 /etc/my.cnf 다.

[root@localhost ~]# vim /etc/my.cnf

[mysql]과 [mysqld]에 아래의 값을 추가해서 저장한다.

[mysql]
default-character-set=utf8mb4

[mysqld]
collation-server = utf8mb4_general_ci
init-connect='SET NAMES utf8mb4'
character-set-server = utf8mb4

저장 후 마리아db를 재시작한다.

[root@localhost ~]# systemctl restart mariadb

다시 확인해보면 캐릭터셋이 변경된 게 확인된다.

MariaDB [(none)]> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

이제 데이터베이스를 만들고 테이블을 생성해도 된다.

혹시 이미 latin으로 데이터베이스를 만들었으면 왠만하면 삭제 후 다시 만드는 걸 추천하고 데이터를 꼭 지켜야하면 데이터베이스와 각 테이블의 캐릭터셋을 모두 바꿔줘야 한다.

관련 글

댓글 남기기