반응형
파이썬에서 pymysql 사용하여 mysql에 이모티콘 등록 시 오류가 발생하면 캐릭터셋을 설정해주면된다.
에러
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\pymysql\protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\pymysql\err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.DataError: (1366, "Incorrect string value: '\\xF0\\x9F\\x91\\x89\\xF0\\x9F...' for column `test`.`book`.`description` at row 1")
my.cnf 파일에 캐릭터셋 설정
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
DB, Table, Column 캐릭터셋 설정
# DB 캐릭터셋 변경
ALTER DATABASE [DB] CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
# TABLE 캐릭터셋 변경
ALTER TABLE [TABLE] CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# COLUMN 캐릭터셋 변경
ALTER TABLE [TABLE] CHANGE [COLUMN] [COLUMN] VARCHAR(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
DB 재시작
sudo service mysql restart
pymqslq charset 설정을 utf8mb4로 설정
conn = pymysql.connect(
# charset='utf8',
charset="utf8mb4",
반응형
'개발' 카테고리의 다른 글
Module Federation로 Micro Front-End 구축 맛보기 (0) | 2022.03.23 |
---|---|
kubernates mysql(postgresql) 접속 (0) | 2022.03.05 |
Nuxt 환경별 환경변수 구분하기 process.env (0) | 2022.02.27 |
HTTP/3와 QUIC 알아보기 (0) | 2022.02.26 |
HTTP/1.x와 HTTP/2 알아보기 (0) | 2022.02.24 |