# mysql error code 1267
파이썬에서 MySQL 연동에서 발생하는 에러 메시지
(1267, "Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='")
이게 무슨 뜻일까?
illegal : 불법
mix of collations : 비교*대조 옵션 믹스
이렇게만 보면 뭐가 문제인지 알 수 없었다.
대략적으로 'utf8 블라블라' 를 보고 인코딩(?) 인가 하는 추측 정도는 할 수 있었다.
먼저 DBA 에게 문의한다.
혹시 테이블 생성 시, 정의된 charset이 어떻게 되는지.
utf8 인지 utf8mb4 인지.
어랏!?
utf8mb4 로 잘 맞춰저 있다고 한다.
그럼 utf8_general_ci 는 어디서 온거지?
보통 문제의 원인은 99% 사람의 손으로 만들어진 코드에서 발생한다.
즉,
내 잘못일 가능성이 매우 크기때문에 스스로의 코드에서 정답을 찾아보는게 좋다.
보통 파이썬에서 MySQL 에 연결하는 설정을 할 때,
charset='utf8' 옵션을 지정해주는 경우가 있다.
나 역시도 간과하고 넘어가기 때문에 당연히 utf8 아닌가? 하는 생각을 했다.
단순히 문자열을 insert 할 때에는 위의 에러 코드를 만나지 않는다.
DBA와 커뮤니케이션을 잘 했다면 발생하지 않았을 문제이다.