ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Springboot JPA mariadb에서 CRUD할 때 인코딩 오류 발생
    Spring 2023. 6. 25. 23:46

    Springboot 에서 폼으로 데이터를 입력 받아 JPA로 mariadb에 CRUD하는 기능을 만들던 중

    한국어로 입력 시 자꾸만 utf8 인코딩 오류가 발생했다.

     

    data truncation: incorrect string value: '\xea\xb0\x9c\xec\x9d\xb8' for column

     

    처음엔 비즈니스 로직에서 utf8 변환을 하거나 application.yml 파일에 

    database url 설정을 아래로 해주었으나 그럼에도 계속 오류는 발생했다.

     

    jdbc:mysql://URL?useSSL=false&useUnicode=true&characterEncoding=utf8

     

    구글링 해보니 mariadb 자체의 인코딩 설정을 바꿔줘야 했다.

    windows에서는 my.ini 파일을 찾아 수정해주면 되었다.

    [client]
    default-character-set = utf8
    
    [mysql]
    default-character-set = utf8
    
    [mysqld]
    init_connect="SET collation_connection=utf8_general_ci"
    init_connect="SET NAMES utf8"
    character-set-server = utf8
    collation-server = utfg_general_ci
    skip-character-set-client-handshake

    db의 인코딩을 확인해보니 utf8로 설정이 바뀐 걸 확인했다.

    그런데도 해결이 안돼서 2시간을 삽질했는데 

     table의 인코딩을 확인 안했던 것이었다.

    show full columns from db.table;

     

    바뀐 설정의 table이 아닌 이전에 만들어진 설정의 table이 계속 살아있어서

    오류가 계속 발생했던 거였다.

     

    이전에 만든 table을 삭제하고 변경한 설정으로 다시 table을 만들고

    폼에 데이터를 입력했다.

     

    db에 데이터가 들어간 것을 확인할 수 있었다.

     

    반응형

    'Spring' 카테고리의 다른 글

    Springboot JPA 폼으로 데이터 입력받아 db에 insert하기  (0) 2023.06.26
    Mybatis란?  (0) 2021.03.25
Designed by Tistory.