본문 바로가기

L의 공간/MySql

[MySql] 이모티콘(emoji) 저장하기

MySql 이모티콘(emoji) 저장하기

 

문제 : utf8은 가변 문자열을 3byte 단위로 저장하기 때문에 이모지를 저장하지 못함. (이모지는 4byte 단위)

해결 : 문자셋을 utf8mb4로 변경해주어야 함.

 

1. MySql 설정 파일에 다음 내용을 추가
$ vim /etc/mysql/my.cnf
[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

 

2. MySql 재시작
$ service mysql restart

 

3. MySql 변경된 문자셋 확인
$ mysql -u root -p
>> SHOW GLOBAL VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

 

4. 기존 데이터베이스 및 테이블의 문자셋 변경
>> ALTER DATABASE [데이터베이스명] DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
>> use [데이터베이스명]
>> ALTER TABLE [테이블명] DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

 

참고

 

이미 생성한 컬럼의 데이터정렬방식은 자동으로 변경되지 않아 직접 바꿔주었음.

 

참고 포스팅

https://artiiicy.tistory.com/31

 

MYSQL에 이모티콘(emoji) 저장하기 + error 처리(mysql row size too large. the maximum row size for the used table type

MYSQL을 이용하여 DB를 관리하던 도중, 이모티콘(이모지-emoji)를 저장하면 error를 띄우거나 '?' 로 저장되는 현상이 발생합니다 이는 MYSQL의 character type이 이모지를 저장하지 못하는 utf8로 설정되어

artiiicy.tistory.com

'L의 공간 > MySql' 카테고리의 다른 글

[MySql] MySql 사용자 추가  (0) 2022.01.31
[MySql] MySql 외부 원격 접속  (0) 2022.01.30