프로그래밍/Python

[python] sqlalchemy (mysql.connector.errors.DatabaseError) 1273 (HY000): Unknown collation: 'utf8mb4_0900_ai_ci'

채윤아빠 2023. 9. 20. 08:12
728x90
반응형

문제점 및 증상

MariaDB와 연동하는 과정에서 다음과 같은 오류가 발생하였습니다.

sqlalchemy (mysql.connector.errors.DatabaseError) 1273 (HY000): Unknown collation: 'utf8mb4_0900_ai_ci'


시험 환경

  • MariaDB : 10.6.4
  • Database charset : utf8mb4
  • TABLE COLLATE : utf8mb4_unicode_ci

해결 방안

해결 방법은 아주 간단합니다.

다음과 같이 DB 연결 문자열 마지막에 "?charset=utf8mb4&collation=utf8mb4_general_ci"를 추가해 주시면 됩니다.

        db_url = f"mysql+mysqlconnector://{conf.get(JKEY_USERNAME)}:{conf.get(JKEY_PASSWORD)}@{conf.get(JKEY_DB_HOST)}:{conf.get(JKEY_DB_PORT)}/{conf.get(JKEY_DB_NAME)}?charset=utf8mb4&collation=utf8mb4_general_ci"
        self._engine = create_engine(db_url, encoding = conf.get(JKEY_DB_ENCODING))
        if self._engine == None:
            # 데이터베이스 연결을 위한 엔진 객체 얻기 실패
            self._logger.error(f'database engine fail!')
            return None, None, -1

참고자료