본문 바로가기
개발(Development)/DB(데이터베이스)

[MySQL] 이모티콘 입력 방법: Incorrect string value 해결

by 카레유 2022. 8. 16.

# MySQL 데이터베이스에 이모티콘 입력 방법

기본 MySQL 세팅 상태에서 이모티콘 입력시, 아래와 같은 에러가 발생한다.

 

Error: Incorrect string value: '\xF0\x9F\x9B\xA9\xF0\x9F...' for column 'title' at row 1
code: 'ER_TRUNCATED_WRONG_VALUE_FOR_FIELD',
errno: 1366,
 sqlState: 'HY000',
sqlMessage: "Incorrect string value: '\\xF0\\x9F\\x9B\\xA9\\xF0\\x9F...' for column 'title' at row 1"

 

데이터베이스, 테이블의 Character Set 을 아래와 같이 변경해주면된다.

 

1. 데이터베이스 문자셋 변경

ALTER DATABASE 데이터베이스명 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

 

2. 테이블 문자셋 변경

ALTER TABLE 테이블명 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

 

애초에 데이터베이스와 테이블 생성 시, 문자셋을 설정해도 된다.

# 데이터베이스 생성
CREATE DATABASE 데이터베이스명 DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_unicode_ci;

# 테이블 생성
CREATE TABLE 테이블명 (
  ...
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci;

 

맥 OS 및 AWS EC2에 설치한 MySQL 서버 환경에선 위의 작업만 해주어도,

이모티콘이 정상적으로 등록되었다.

 

 

댓글