데이어베이스

[MySQL] 이모지 저장 에러

조회: 270 댓글: 0개 2022.07.26 18:41 화요일

블로그에 이모지가 들어간 텍스트를 저장하려니 500에러과 함께 다음의 로그가 남았다.

MySQLdb._exceptions.OperationalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x98\\x82 \\xEC...' for column '컬럼명' at row 1")

컬럼의 character_set이 utf8mb4가 아니라서 생긴 오류였다.
이모지를 저장하기 위해선 컬럼의 character_set이 utf8mb4로 설정돼있어야 한다.
에러가 발생한 컬럼의 character_set을 확인하고 utf8mb4로 변경하니 잘 저장된다.

컬럼들의 character_set 확인 sql
show full columns from 테이블명;

특정 컬럼의 character_set 수정 sql
ALTER TABLE 테이블명 MODIFY COLUMN 컬럼명 타입 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

captcha