-
IntelliJ/mariaDB Illegal mix of collations (utf8mb4_general_ci,COERCIBLE) and (utf8mb4_unicode_ci,COERCIBLE) for operation 'like'Tool/IntelliJ 2023. 2. 8. 12:33
IntelliJ 쿼리 콘솔에서 쿼리 실행 도중에 아래와 같은 에러가 발생하였다.
[HY000][1267] (conn=87) Illegal mix of collations (utf8mb4_general_ci,COERCIBLE) and (utf8mb4_unicode_ci,COERCIBLE) for operation 'like'
음.. 잘 된던게 왜 안되지 하면서 원인을 찾게 되었다.
MariaDB는 로컬에 존재하고 아래 포스팅과 같이 옵션을 넣고 실행
https://dchkang83.tistory.com/86
구글링을 하다보니 조인조건에 문자열이 맞지 않아서 발생한다는 말이 많이 보여졌다.
분석한 내용을 토대로 에러메세지를 나름의 방식으로 해석해보니 아래 쿼리를 실행함에 있어서 utf8mb4_general_ci로 된놈으로 쿼리할려고 하는데 utf8mb4_general_ci 이놈이 뭔가 튀어나와서 잘못된 조함이 발생하면서 문제를 일으킨것 같다
AND C.AD_STATUS LIKE '%2%'
IEAD DB 접속툴에 따라서 다른경우도 종종 생긴다고 알고 있어서 혹시 몰라서 MySQL Workbench 쿼리를 실행해 보았다.
어랏.. 된다...!! 줸장...앙!!
그렇다는건 서버 설정에는 이상이 없다로 보고 클라이언트 접속툴의 차이인가로 예상된다.
하지만 설정 확인은 해봐야 하니 아래순서에 따라 원인을 찾아보았다.
원인을 찾아보자!!
확인 코드
show variables like 'char%'; show variables like 'collat%'; show variables like 'init%';
IntelliJ IDEA에서 collation 확인
IntelliJ에서 실행해본 결과 utf8mb4_general_ci로 잘 설정 되어있다.
MySQL WorkBench에서 collation 확인
틀리다!!! 찾은거 같다!!
두가지 쿼리를 돌아가면서 설정해보고 안되던 쿼리를 실행해 보았더니 utf8mb4_general_ci 이놈으로 했을때 된다.
SET collation_connection = utf8mb4_unicode_ci; SET collation_connection = utf8mb4_general_ci;
그렇다는건 연결할때 collation_connection을 utf8mb4_general_ci로 설정해 주면 된다는것 아닌가??
IntelliJ에서 Startup Scrtip 작성
set character_set_server = utf8mb4; set collation_server = utf8mb4_unicode_ci; set collation_connection = utf8mb4_general_ci; set collation_database = utf8mb4_unicode_ci;
필자는 나중에라도 확인할게 또 있을까바 4가지 설정을 set 해주었지만 문제였던 collation_connection 설정만 해주면 된다!
set collation_connection = utf8mb4_general_ci;
접속 세션 끊고 다시 IntelliJ IDEA DB 접속툴에서 문제가 발생했던 쿼리를 실행해보면 정상적으로 동작한다.!
하지만.. 의문인건 utf8mb4_unicode_ci로 동작해야 하는건 아닌가??
혹시나해서 테이블 collation도 확인해보니 뭔가 이상하다..
SELECT T.TABLE_NAME, T.TABLE_COLLATION FROM INFORMATION_SCHEMA.TABLES AS T WHERE T.TABLE_SCHEMA = 'db_name' AND T.TABLE_TYPE != 'VIEW' ORDER BY T.TABLE_COLLATION ;
이미 설정되는 프로젝트에서 할것도 많은데 저부분까지 더 파악해보는건 무리일것 같아서 나머지 문제는 후순으로 미뤄보자!
머리에서 잊어버려.. 잊어버려!!
collation이 다르게 생성된 테이블들은 좀더 원인을 파악해보고 mb4로 새로 생성해야하는게 맞을거 같긴하지만..
안돼 안돼.. 더이상 생각하지마!! 나중에 보자 진짜 나중으로 미룬다!
참조
'Tool > IntelliJ' 카테고리의 다른 글
Code Style, Check Style 적용 (1) 2024.05.02 IntelliJ CE JDK, 모듈 설정 및 서비스 추가 (0) 2024.04.09 IntelliJ/MyBatis 경고 설정 (코드 검사 및 포멧팅) (0) 2022.11.02 IntelliJ/CheckStyle 및 GoogleStyle Formatter 설정 (0) 2022.10.20 IntelliJ/단축키 모음 (0) 2022.10.20