JPA

[JPA] MariaDB Charset 오류 해결

리승자이 2022. 8. 4. 22:01
728x90

JPA 오류 💢

jpa에서 spring.jpa.hibernate.ddl-auto=create 속성으로 테이블을 만들어줄 경우에
MariaDB default로 어떤값을 주던간에 latin1속성으로 insert가 된다. 그래서 이방법 말고 안에서 테스트만 한다고 하면 h2 DB를 사용하는 것이 더 바람직하다.

아니라면 ddl-auto 속성을 주지않고 직접 MariaDB에서 어떤 Column들을 넣을지 결정하고 먼저 생성한 다음 연결하는게 좋을 것이다.
이것 때문에 애를 많이 먹었다.

[mysqld]
datadir=C:/Program Files/MariaDB 10.5/data
port=3306
innodb_buffer_pool_size=1948M
init_connect="SET collation_connection = utf8_general_ci"
init_connect="SET NAMES utf8"
character-set-server = utf8
collation-server = utf8_general_ci
[client]
port=3306
plugin-dir=C:/Program Files/MariaDB 10.5/lib/plugin
default-character-set=utf8
[mysqldump]
default-character-set = utf8
[mysql]
default-character-set = utf8

MariaDB data 경로에 있는 my.ini 파일인데 이렇게 바꿔주면 기본으로 utf8 설정을 할 수 있다.

데이터베이스 character set 확인
show create database 데이타베이스명;

데이터베이스의 character set 변경
alter database 데이타베이스명 default character set = utf8;

테이블 character set 확인
show create table 테이블명;

테이블의 character set 변경
alter table 테이블명 default character set = utf8;

각 컬럼별 character set 확인
show full columns from 테이블명;

각 컬럼별 character set 변경
alter table 테이블명 modify column 컬럼명 varchar(20) character set utf8 collate utf8_general_ci;

ddl-auto로 생성하였다면 이렇게 일일이 바꿔주어야 한다. 꼭 명심하고 체크한 뒤에 test를 진행하자.😨

728x90