MySQL \\xF0\\x9F\\x98\\x8A 문제[현재 django, react 사용중]

김범기·2024년 6월 14일
0

개요

gemini api를 이용해서 데이터를 받아오고, 이것을 또 MySQL에 저장하는 과정을 하는 중이다.
그런데 잘 되던게 갑자기 에러를 띄워서 보니 이모티콘이 문제였다.
이것을 해결해봐야겠다.

해결

처음에는 아래 블로그를 보고 시도하려했었다.
참고 블로그1

난 테이블만 변경하면 되므로

-- 테이블 변경
ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

를 사용하고 이제 밑에 내용을 시도하려했으나 끄윽... 막혔다. 제대로 되질 않았다 my.ini는 권한이 없어서인지 저장이 안되었다. 여기서는 관리자 권한으로도 어떻게 여는지 모르겠다. 여기서 막혀서 어떻게 해야하나...ㅜㅠㅠㅠ😣

하지만!!!! 아래 블로그를 보고 해결했다.
내가 해결된 참고 블로그 감사합니다 블로거님 따흫흑😂😘👍❤️

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test',
        'USER': 'root',
        # 'PASSWORD': get_secret("MYSQL_PW"),
        'PASSWORD': env("MYSQL_PW"),
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'OPTIONS': {
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
            'charset': 'utf8mb4',
            'use_unicode': True,
        },
    }
}

django의 DATABASES에서 아래의 OPTIONS를 추가하니 이모지를 넣을 수 있게 되어 해결되었다.

'OPTIONS': {
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
            'charset': 'utf8mb4',
            'use_unicode': True,
        },

참고

window에서 my.ini의 위치는
shift+r 누르고 services.msc를 입력하고 확인을 누른뒤,

MySQL에서 속성을 누르고

실행파일 경로를 끝까지 당겨서 보면 어디에 위치해있는지 알 수 있다.

식겁했네.

profile
반드시 결승점을 통과하는 개발자

0개의 댓글