SMALL
어떤 문제가 생겼나요?
spring 에서 application 으로 DB 연결하는 Driver 과 계정을 입력하고 연결하는데 계속 오류가 발생하였다...
전에 하였던 프로젝트들은 전부 잘 되고 있는 코드 였는데 갑자기 이런 오류를 뽑내면서 연결이 안되었다..
전이랑 다른점은 DB 를 다른 컴퓨터에 있는 DB 에 연결할려고 해서 포트포워딩까지 설정하면서 하였다. 하지만 Sptring 에서만 안됬지 HeidiSQL 에서는 잘 연결이 되었다..
Caused by: org.hibernate.HibernateException: Unable to determine Dialect without JDBC metadata (please set 'javax.persistence.jdbc.url', 'hibernate.connection.url', or 'hibernate.dialect')
어떤 시도를 하였나요?
구글링을 해보니 아래와 같이 설정하면 된다고 하여서 시도를 해보았지만 실패하였다..
database: mysql # 추가 해준 부분
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect # 추가 해준 부분
어떻게 해결했나요?
알고보니 다른 사람 컴퓨터에 DB 엔진을 InnoDB 가 아닌 MyISAM 으로 만든것이였다. DB 엔진을 InnoDB 를 바꾸니 정상적으로 실행 되었다. 또한 JPA 를 쓸려고 Hibernate 에서 MyISAM 에서 설정을 해줘야 연결이 되는데 안된다고 한다.
InnoDB 는 자동적으로 Hibernate 가 연결이 되지만... ( 처음 알게 되었다 ㄴㅇㄱ )
이를 통해 새롭게 알게된것들
mysql DB 엔진이 2개가 있다는것을 알게 되었고 아래와 같은 차이점이 존재한다고 새롭게 알게 되었다.
InnoDB 스토리지 엔진은 트랜잭션 처리가 필요하고 대용량의 데이터를 다루는 부분에서 효율적이고,
MyISAM 스토리지 엔진은 트랜잭션 처리가 필요 없고, Read only 기능이 많은 서비스일수록 효율적이다.
지금 프로젝트에서는 200백만개의 데이터를 쓸 예정이라 InnoDB 쓰는것이 맞다 생각하여 InnoDB 를 쓰게 되었다.
반응형
LIST
'TIL' 카테고리의 다른 글
2023-06-25 TIL (0) | 2023.06.26 |
---|---|
생각하여 정리한 개념들.. (0) | 2023.06.23 |
인텔리제이 환경변수 오류 (0) | 2023.06.17 |
DB 예약어 Table 이름 (0) | 2023.06.13 |
파일 경로 에러 (0) | 2023.06.10 |