-
mysql에서 emoji를 저장하기 위한 케릭터셋 설정설치&설정 관련/MariaDB & Mysql 2022. 12. 23. 17:49728x90
mysql에서 emoji를 저장하기 위한 케릭터셋 설정
utf8 to utf8mb4
utf8 인코딩은 한 문자를 나타내기 위해서 1바이트에서 4바이트까지를 사용합니다.
그런데 말입니다. mysql의 utf8은 3바이트로 이루어져 있습니다.
emoji를 제대로 표현하기 위해서는 4바이트의 문자열이 필요합니다.
아래는 utf8 에서 utf8mb4로 변환 하는 내용을 정리 하였습니다.
MYSQL에서 설정 변경
mysql 5.5.3 이상에서만 utf8mb4를 사용할 수 있습니다. 참고
설정 변경
# linux - my.cnf # windows - my.ini [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci skip-character-set-client-handshake
AWS RDS MYSQL에서 설정 변경
RDS > parameter groups > 변경 RDS 선택
utf8mb4로 변경 변수값 변경
- character_set_client
- character_set_connection
- character_set_database
- character_set_filesystem
- character_set_results
- character_set_server
- character_set_system
utf8mb4_general_ci로 변수 값 변경
- collation_connection
- collation_server
변경 내역 확인
다음 명령어를 이용해서 DBMS의 상태를 확인를 확인합니다.
show variables like 'c%';
추가 팁 - mysql create index with substring
mysql에 index 생성시, substring, cast 와 같은 함수를 활용하여 생성 할 수 있습니다.
CREATE TABLE tbl ( col1 LONGTEXT, INDEX idx1 ((SUBSTRING(col1, 1, 10))) // 인덱스 ); SELECT * FROM tbl WHERE SUBSTRING(col1, 1, 9) = '123456789'; // idx1 적용 안됨 SELECT * FROM tbl WHERE SUBSTRING(col1, 1, 10) = '1234567890'; // idx1 인덱스 적용
참고자료
728x90'설치&설정 관련 > MariaDB & Mysql' 카테고리의 다른 글
Mysql 백업 정리 (0) 2022.11.01 DB 테이블에서 객체 필드 뽑아내기 (0) 2022.10.26 Mysql 설치시 설정 (0) 2022.10.10 MongoDB를 설치 (0) 2021.02.22 MongoDB backup & restore (0) 2019.05.26