반응형
MariaDB를 설치하는 중, 아래 화면에서 Use UTF8 as default server's character set을 체크하면 자동으로 utf-8로 charset이 설정됩니다.
설치 후 SHOW VARIABLES LIKE 'c%'; 명령어를 사용하여 보면 다음과 같습니다.
위와 같이 utf8mb3와 utf8mb4가 섞여 있는 것을 볼 수 있는데요. 뭔가 찝찝합니다.
원래 UTF-8의 경우 4바이트인데 MySQL, MariaDB의 경우 utf8이 3바이트로 구현되어 있었는데 이후 MySQL 5.5.3(2010년 3월) 이후 4바이트인 utf8mb4가 추가되었다고 합니다.
utf8mb4를 사용해야 이모지 등 4바이트가 필요한 언어를 사용하고 싶습니다.
깔끔하게 전부 utf8mb4로 통일하고 싶은데요.
방법은 다음과 같습니다.
- 설정 파일 변경(Linux: my.cnf, Windows: my.ini)
- Windows 파일 경로: 설치경로/data/my.ini
- Linux 파일 경로: /etc/my.cnf
* 여기서는 utf8mb4_unicode_ci로 했지만 utf8mb4_general_ci로 해도 됩니다.[client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 [mysqldump] default-character-set=utf8mb4 [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci skip-character-set-client-handshake
* skip-character-set-client-handshake
DB서버와 접속을 할 때 클라이언트는 자신이 사용할 Character set을 설정하며 그 설정을 사용하도록 되어있지만 skip-character-set-client-handshake 옵션을 사용할 경우 클라이언트에서 설정한 Character set을 무시하고 character_set_server 값으로 설정됩니다. - 서버 재시작
- Windows
- Windows key + R
- services.msc 입력
- MariaDB restart
- Linux(CentOS)
- service mariadb restart
- Windows
- 변경된 값 확인
SHOW VARIABLES LIKE 'c%';
위와 같이 깔끔하게 변경된 것을 확인 할 수 있습니다.
그런데 character_set_system은 여전히 utf8mb3로 남아있는 것을 볼 수 있는데, 이 값은 DB Server가 T 식별자(Identifier, 테이블이나 컬럼명 등)를 저장하기 위해 사용하는 character set입니다. 이 값은 사용자가 설정하거나 변경할 수 없다고 합니다.
728x90
반응형
'Database ( DB ) > Database' 카테고리의 다른 글
mssql에서 datetime과 datetime2의 차이 (0) | 2022.02.20 |
---|---|
ibm db2 설치 및 외부 접속 설정하는 방법 for Windows (0) | 2021.12.14 |
Mariadb 10.4 대소문자 구분 설정 (0) | 2021.08.23 |
[MSSQL] IDENTITY 값 초기화 하는 방법 (0) | 2021.08.08 |
Oracle 12c Download 방법 (0) | 2021.06.14 |