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 |