DB/RDBMS

[MySQL] 문자 인코딩 변경 (에러 처리)

dddzr 2025. 11. 8. 18:42

### Cause: java.sql.SQLSyntaxErrorException: (conn=23478) Incorrect string value: '\xEC\xA0\x9C\xEB\xAA\xA9...' for column bbs.post.title at row 1 ; bad SQL grammar []] with root cause

 

원인

SQLSyntaxErrorException: Incorrect string value 에러는 문자 인코딩 문제 때문에 발생!!

즉, title 컬럼에 한글(또는 특수 문자)이 제대로 저장되지 않는 문제다.

 

🛠 해결 방법

📌 1. 인코딩 확인

서버 전체 기본 인코딩 확인

SHOW VARIABLES LIKE 'character%';

 

✅ 데이터베이스 인코딩 확인

SELECT schema_name, default_character_set_name, default_collation_name

FROM information_schema.schemata

WHERE schema_name = bbs;

 

 

✅ 모든 테이블 인코딩 확인

SELECT TABLE_NAME, TABLE_COLLATION

FROM information_schema.tables

WHERE TABLE_SCHEMA = 'bbs';

➡️ 만약 latin1로 되어 있다면, 한글이 깨질 수 있으니 utf8mb4로 변경

잘못된 예:

📌 2. 인코딩을 utf8mb4로 변경하기

✅ 컬럼만 변경

ALTER TABLE {table Name} MODIFY COLUMN {column Name} VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

 

✅ 테이블 전체 변경 (모든 문자열 컬럼 포함)

ALTER TABLE {table Name} CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

 

✅ 데이터베이스 전체 변경

ALTER DATABASE {DB Name} CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;


'DB > RDBMS' 카테고리의 다른 글

조회 속도 개선 (쿼리최적화)  (0) 2025.04.06
[MariaDB] 외래키 생성/삭제 방법  (0) 2024.11.30
쿼리 실행 속도 확인  (0) 2024.05.30
서브 쿼리 ORDER BY  (0) 2023.10.23
[MariaDB] RECURSIVE 계층 메뉴 구성  (0) 2023.08.14