코알못

[MYSQL] 이모지 데이터 저장 및 조회 본문

SQL

[MYSQL] 이모지 데이터 저장 및 조회

코린이s 2021. 9. 4. 16:43
728x90

기존 MYSQL 이 설치 되어 있었고, 이모지 Insert 시 아래와 같은 오류 발생

java.sql.SQLException: Incorrect string value: '\xF0\x9F\xA4\xAF' for column '칼럼명' at row 1

확인해보니 Mysql 의 utf-8은 3 byte 문자 입력 가능 하나, 이모지는 4 byte로 표현되는 문자를 넣으려고 하여 발생한 오류이다.

해결 방법은 이모지를 넣으려는 칼럼의 3byte UTF-8(utf8mb4) 을 4 byte UTF-8(utf8mb4_unicode_ci) 로 변경하면 된다.

ALTER TABLE 테이블명 MODIFY COLUMN 칼럼명 칼럼타입 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '칼럼 설명';

그리고 아래와 같이 jdbc 옵션을 추가한다.

useUnicode=true&characterEncoding=utf-8

그러나 저자의 경우 변경해도 같은 오류가 발생하여 확인해보니 사용하는 mysql driver 버전이 너무 낮아 발생하여, 8.대 버전으로 올려 이슈 해결 하였다.

INSERT , SECECT, UPDATE 그냥 이모지(🥶) 그대로 쓰면 된다. (따로 mybatis 에서 작업할 부분은 없다.) 

728x90
Comments