MariaDB 서버를 설치하면 기본적으로 캐릭터셋이 latin~으로 설정되어 있다. 이 정체 불명의 캐릭터셋은 한국에선 쓸일도 없거니와 한글을 지원하지 않기 때문에 써서도 안 된다. 그래서 서버 설치 직후 필수적으로 캐릭터셋은 UTF8~로 바꿔줘야 한다.
MariaDB character set 변경
현재 character set 확인
직접 설치했다면 그냥 바로 utf8 변경을 하면 되고 다른 사람이 설치한 환경이라면 혹시 바뀌었는지 확인해볼 필요는 있다. 물론 대부분 안 바꿔놓는다고 보면 된다.
마리아db에 접속해서 char이 포함되는 변수를 확인한다.
MariaDB [(none)]> show variables like '%char%';
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으로 데이터베이스를 만들었으면 왠만하면 삭제 후 다시 만드는 걸 추천하고 데이터를 꼭 지켜야하면 데이터베이스와 각 테이블의 캐릭터셋을 모두 바꿔줘야 한다.