com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
Caused by: org.hibernate.HibernateException: Unable to determine Dialect without JDBC metadata (please set 'javax.persistence.jdbc.url', 'hibernate.connection.url', or 'hibernate.dialect')
위와 같이 Spring Boot 컨테이너에서 MySQL Dialect 설정을 찾지 못 해서 에러가 생긴 케이스다.
Hibernate는 데이터베이스와의 상호 작용을 관리하는 ORM 프레임워크이다. SQL을 생성하고 실행하며, 데이터베이스와의 연결 및 통신을 담당하는데, Hibernate는 고유한 SQL 문법 및 동작을 가진다. 그래서 특정 DB를 사용하는 경우 위와 같이 설정을 해줘야 하는 것이고, Dialect는 Hibernate가 생성하는 SQL 문을 특정 DB 시스템에 맞게 조정하는 역할을 한다.
고유 SQL 생성(Hibernate) -> 특정 DB 해석 요구 -> Dialect 설정(MySQL)
spring:
jpa:
properties:
hibernate:
dialect: org.hibernate.dialect.MySQLDialect
application.yml텍스트(application.properties)에서 MySQLDialect 설정을 해주면 문제가 해결이 된다.
잘못된 정보는 지적해주시면 감사하겠습니다.