[Spring] - Entity Manager Factory μ—λŸ¬

πŸ’¬ 상황 μ„€λͺ…

λ ˆκ±°μ‹œ ν”„λ‘œμ νŠΈλ₯Ό λ¦¬νŒ©ν† λ§ν•˜κΈ° μœ„ν•΄ μ‹€ν–‰μ‹œν‚€λ‹ˆ μ•„λž˜μ™€ 같은 μ—λŸ¬ ꡬ문 확인

Error creating bean with name 'entityManagerFactory' defined in class path resource 
[org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; 
nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

πŸ”Ž 원인 뢄석

ν•΄λ‹Ή μ—λŸ¬μ˜ λŒ€λΆ€λΆ„μ€ application.ymlμ—μ„œ λ°œμƒν•˜λŠ” κ²ƒμœΌλ‘œ 보인닀.
μš°μ„  μ˜€λžœλ§Œμ— μ‚¬μš©ν•˜λŠ” ν”„λ‘œμ νŠΈμ΄κΈ°μ— μ²˜μŒλΆ€ν„° λ‹€μ‹œ 천천히 μ‚΄νŽ΄λ³΄μ•˜λ‹€.

βœ… ν•΄κ²° κ³Όμ •

1. DB 확인

μš°μ„ , μ΅œκ·Όμ— λ§₯뢁을 μ΄ˆκΈ°ν™”ν•΄μ„œ DB 쑴재 μ—¬λΆ€λΆ€ν„° ν™•μΈν–ˆλ‹€. μ—­μ‹œλ‚˜, ν”„λ‘œμ νŠΈλ₯Ό μ‹€ν–‰ν•  일이 μ—†λ‹€λ³΄λ‹ˆ DBκ°€ μƒμ„±λ˜μ–΄ μžˆμ§€ μ•Šμ•˜λ‹€.

create database dbname;
use dbname;
create user username@'%' identified by '1234';
grant all privileges on dbname.* to username@'%' with grant option;
flush privileges;

λͺ¨λ“  μ •μƒμ μœΌλ‘œ μƒμ„±ν•œ 뒀에도 κ²°κ³ΌλŠ” κ·ΈλŒ€λ‘œμ˜€λ‹€.

2. μ—λŸ¬ ꡬ문 확인

μ—λŸ¬ ꡬ문을 더 μžμ„Ένžˆ ν™•μΈν•΄λ³΄λ‹ˆ dialectλΌλŠ” λ‚΄μš©μ΄ μžˆμ—ˆλ‹€. properties νŒŒμΌμ„ ν™•μΈν•΄λ³΄λ‹ˆ 버전에 λ§žμ§€ μ•ŠλŠ” λ‚΄μš©μ„ μ μ–΄λ†“μ•˜λ‹€. ν˜„μž¬ 버전에 맞게 μˆ˜μ •ν•˜λ‹ˆ μ •μƒμ μœΌλ‘œ μž‘λ™ν•˜λŠ” 것을 확인할 수 μžˆμ—ˆλ‹€.

ν•΄λ‹Ή ꡬ문을 μ§€μ›Œλ„ μ •μƒμ μœΌλ‘œ μž‘λ™λ˜λ‹ˆ λ‚˜μ€‘μ— ν•„μš”ν•˜λ‹€ 싢을 λ•Œ 넣어도 될 것 κ°™λ‹€.

# λ³€κ²½ μ „
spring:
  jpa:
    database-platform : org.hibernate.dialect.MySQL5InnoDBDialect
# λ³€κ²½ ν›„
spring:
  jpa:
    database-platform : org.hibernate.dialect.MySQL8InnoDBDialect

λŒ“κΈ€λ‚¨κΈ°κΈ°