아래코드를 실행할 때 character-set 오류가 났다.
SQL Error [1267] [HY000]: (conn=75317) Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='
SELECT CASE
WHEN
( EXISTS (SELECT SELECTEDCODE FROM t_userfield WHERE INPUTTYPE=2 AND SelectedCode=1019)
OR EXISTS (SELECT SetUpValue FROM T_cabinetfield WHERE FieldKey IN ('KC0', 'KC1', 'KC2' ) AND SETUPVALUE=CAST(1019 AS CHAR ))
OR EXISTS (SELECT SetUpValue FROM t_sheetfield WHERE FieldKey IN ('KC0', 'KC1', 'KC2' ) AND SETUPVALUE=CAST(1019 AS CHAR ))) THEN 1
ELSE 0
END Existence
이유는, collation_connection이랑 collation_server 이게 utfmb4_unicode_ci여야하는데 utfmb4_general_ci여서이다.
변경 방법은 ini파일(윈도우에선 ini인데 리눅스에서는 cnf인가 그랬던듯)에 아래와 같이 셋팅해주고 mysql 서비스 중지하고 다시 재기동하면 된다.
[mysqld]
basedir=C:/Program Files/MariaDB 10.2
datadir=C:/Program Files/MariaDB 10.2/data
port=3306
innodb_buffer_pool_size=2036M
character-set-client-handshake = FALSE
character-set-server=utf8mb4
collation-server = utf8mb4_unicode_ci
lower_case_table_names = 1
[client]
port=3306
plugin-dir=C:/Program Files/MariaDB 10.2/lib/plugin
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
그런데..
DB툴로 붙으면 그게 저 셋팅이 안먹힐 수가 있다.
그래서..
DBeaver에서 connection setting을 바꿔주면 된다.
Edit Connection에서
아래 캡쳐처럼 sessionVariables를 셋팅해주면 끝!
'부족했던 부분' 카테고리의 다른 글
커맨드 창에서 명령어 확인하기 (0) | 2020.07.27 |
---|---|
자료형 확인법 (0) | 2020.03.24 |
\r\n의 의미 (0) | 2020.03.18 |
PrintWriter 쓸 때 flush, close 해주기 (0) | 2020.03.18 |
API 요청시 요청변수(request Parameter) UTF-8 설정 (0) | 2020.03.14 |