SQL Error: 1366, SQLState: 22007
incorrect string value: '\xec\xb5\x9c\xec\x8a\xb9...
JPA를 통해서 데이터베이스 유저 테이블을 생성하는 도중 해당 에러코드를 뱉어냈다. 부가적으로 다음과 같은 것을 확인할 수 있는데 이는 인코딩 과정에 저장이 문제 생겼다는 뜻이다. 실제로도 여기엔 없지만 에러를 가르키는 곳이 'name'이었고 name에는 한글이 들어가고 있었다.
일일이 바꿔줬다
처음엔 방법을 몰라서 일일이 컬럼 하나하나 수정을 했다. 한 번도 이런 일이 없었다 생각했는데 다시 생각해보니 여태까지 DB를 직접 CREATE했었기에 볼 수 없었던 것이다.
charset 값을 ALTER한다.
JPA를 통해서 생성한다면 이 자체에서는 어떻게 할 수 있는 방법이 없는 것 같다. mybatis나 queryDSL이었으면 charset 값을 수정해줄 수 있었을 것 같은데 이번엔 JPA 자체로만 하다보니 수정할 수가 없었다.
alter table user default character set = utf8;
alter table user convert to charset utf8;
테이블이 생성될 때마다 로컬 DB에 접근해서 ALTER 해줘야한다. 참고로 이건 로컬에서 MariaDB나 MySQL을 사용할 때이고 RDS의 경우는 따로 검색해보아야 할 것이다.
'personal project > 에러 해결' 카테고리의 다른 글
403 에러, 스택 오버플로우, ... (0) | 2024.03.03 |
---|---|
css 적용과 불러오지 못할 경우 (0) | 2024.03.03 |
Enum 클래스 값이 숫자로 저장될 때 (0) | 2024.03.03 |
CI/CD로 AWS 배포를 구축하면서 발생한 것들 (0) | 2024.02.28 |
spring initializr 설치 이후 생기는 문제 (0) | 2024.02.27 |