오늘의 취준/오늘의 공부

[JAVA/SpringBoot/Intellij] Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service

gogoem 2023. 5. 31. 19:38
728x90

강의 듣는데 문제가 생겼다.

놀랍지도 않다. 강사님이 코드 패키지도 다 제공해주고 스텝바이스텝으로 알려주는거 다 따라했지만

난 언제나 고난의 삶을 살 운명인가봄

 

 

인텔리제이에 mysql을 연결하고 나서 런 돌리고 웹 구동해보려는데!!

 

Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

 

이런 오류가 뜸.

jdbc 에 이상이 있는 것 같은데....

 

강사님은 ctrl 누르고 jdbc 드라이버 경로 클릭하면 드라이버 파일로 이동되던데 난 안되는거 때문일까...

나름 구글링 해봤더니 여러 방법이 나온다.

 

 

1. mysql connector 다운로드

2. 프로젝트 외부 라이브러리에 connector 추가

3. intellij 프로젝트의 build.gradle 파일에 connector 의존성 코드 추가

 

 

 

일단 ! 윈도우 검색창에 mysql installer 를 쳐서 들어감

오른쪽에 Add ... 클릭

 

[MySQL Connectors] > [Connector/J] > [Connector/j 8.0] 순서대로 열어준다음 원하는 버전 클릭 하면 오른쪽으로 향하고 있는 화살표가 녹색으로 변함. 녹색 화살표 클릭하고 next 누르면 설치됨!

 

 

 

그리고 나서 Intellij에 들어간다.

오른쪽 상단 톱니바퀴 누르고

[Project Structure] 을 누른다.

숫자 순서대로 클릭 한 다음, 

connector 파일이 있는 곳을 선택해줘야 하는데,

아마 따로 지정해주지 않았다면 [C:\Program Files (x86)\MySQL\Connector J 8.0] 이 경로에 있을것임.

만약 없다면 MySQL Installer 에 들어가서 확인 가능!

경로 선택해서 추가해주고, 왼쪽 Externanal Libraries 목록에서 확인되면 정상적으로 추가된 것!

 

 

 

그 다음 build.gradle 파일로 들어간다.

dependencies 안에

implementation 'mysql:mysql-connector-java';

이거 넣어준다.

 

 

 

다 한 뒤에 다시 인텔리제이 런 해봤더니

이전 오류는 사라지고 다른 오류가 나타남.

맨 아래 Run with --scan 을 눌러서 로그 나오는 걸 봤는데

8080포트가 이 차 있어서 오류가 난 거 였음.

 

[포트 죽이는 법]

cmd 실행(혹시 모를 경우를 대비해 관리자 권한으로 열자.)

'netstat -ano' 입력(파이프를 쓰면 원하는 포트번호를 빨리 찾을 수 있음)

나오는 리스트를 보고 죽이길 원하는 포트의 pid를 기억하자

taskkill /f /pid [포트번호] 를 입력하고 엔터를 누르면 성공적으로 삭제했다는 문구가 뜸.

 

 

 

 

포트 죽이고 다시 런 했더니 오류 없이 잘 돌아가고 데이터도 들어가는거 확인함!!!!

만약 돌아가긴 하는데 DB에 데이터가 안 들어간다면..

workbench 로 들어가서 원하는 라이브러리 connection을 추가해보는것도 방법임!

connections 목록에 내가 생성한 데이터베이스가 없다면

MySQL Connections 옆의 + 버튼을 눌러 생성해주면 됨.

 

 

 

 

+ Intellij 무료 버전에서는 Ctrl 눌러서 드라이버 파일로 이동하는 기능은 없다고 한다...

유료 버전에서만 지원되는 기능이었음!