JPA를 처음 공부하다가 

 

org.springframework.orm.jpa.JpaSystemException: could not execute statement; nested exception is org.hibernate.exception.GenericJDBCException: could not execute statement

...

Caused by: java.sql.SQLException: Incorrect string value: '\xEA\xB2\x8C\xEC\x8B\x9C...' for column 'title' at row 1

 

라는 에러가 발생하여 당황했는데 

알고보니 인코딩이 안맞아 발생한 문제였다.

JPA에서는 UTF-8을 사용하였지만 MySql에는 EUCKR로 지정되었다.

 

 

1. 먼저 Mysql의 현재 인코딩 방식을 조회해본다.

mysql> show variables like 'c%';

 

2. Client 인코딩 변경

mysql> set names utf8;

 

3. DB 인코딩 변경

mysql> ALTER DATABASE [스키마 이름] default character set utf8;

 

다시 인코딩을 조회해보면 변경된 것을 확인할 수 있다.

변경되지 않았다면 윈도우 서비스에서 MySQL을 재시작해보자.

 

 

다른 방법으로는 my.ini 파일을 메모장으로 수정하는 것인데 

메모장으로 설정을 건드리는 짓이라 별로 좋은 것 같지 않다. (실제로 시도해보다가 서비스 실행이 안됨..)

+ Recent posts