Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to resolve name [org.hibernate.dialect.MySQL8InnoDBDialect] as strategy [org.hibernate.dialect.Dialect]
게시판 만들다가 시작부터 오류 발생...!
org.hibernate.dialect.MySQL8InnoDBDialect 이거를 해결할 수 없다?는 뜻??
//application.yml
# 서버 포트 설정
server:
port: 8082
# database 연동 설정
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/board?serverTimezone=UTC&characterEncoding=UTF-8
username: root
password: 0000
thymeleaf:
cache: false
# spring data jpa 설정
jpa:
database-platform: org.hibernate.dialect.MySQL8InnoDBDialect
open-in-view: false
show-sql: true
hibernate:
ddl-auto: update
mysql과 연동하는 과정에서 난 오류같은데 어디가 잘못된지 모르겠다..
검색해보니 password: '0000'으로 해결하신 분도 있어서 해봤는데 해결이 안됐다.
하루정도 고민하다가 발견한 틀린부분은 두가지.
위 yml 파일에서 우선 url부분에서 내가 만든 db인 board는 localhost가 아니라 127.0.0.1 이라서 url이 jdbc:mysql://127.0.0.1:3306/board? ~~~식으로 되어야한다.
jpa 부분에 org.hibernate.dialect.MySQL8InnoDBDialect 이게 아니라 org.hibernate.dialect.MySQL8Dialect 이거다.. 오류 메시지를 보면 알 수 있다.
Mysql db부터 다시 만들어서 해봤다.
//cmd 창에서 mysql로 들어가기
mysql -u root -p
//비번입력후
use mysql;
//db 생성
create database [db이름];
//계정 생성
// localhost 를 적으면 로컬에서 접속 가능한 사용자가 추가됨
create user '[계정ID]'@'localhost'identified by '[비번]';
//권한주기
grant all privileges on [db이름].* to '[계정ID]'@'localhost';
//아래는 mysql 8.x에서 적용된다는데 필자는 생성이 안됨..
grant all privileges on [db이름].* to '[계정ID]'@'%' with grant option;
//권한적용
flush privileges;
//권한확인
show grant for [계정ID];
아래와 같이 db생성되는 것을 확인하였는데 또다른 오류가 발생.이건 다음 포스팅에...
참고용 mysql 버전
참고용 build.gradle
//build.gradle
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.2'
id 'io.spring.dependency-management' version '1.1.4'
}
group = 'springboot'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '17'
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
// database
runtimeOnly 'com.mysql:mysql-connector-j'
}
tasks.named('test') {
useJUnitPlatform()
}