[Error] java.sql.SQLNonTransientConnectionException: Cannot load connection class because of underlying exception: com.mysql.cj.exceptions.WrongArgumentException: Malformed database URL, failed to parse the main URL sections. 에러 해결하는 법
2023. 6. 30.
반응형

아주 간단한 문제에 에러가 세 가지 발생했다.

 

1.

 

java.sql.SQLNonTransientConnectionException: 

Cannot load connection class because of underlying exception

 

2.

 

Caused by: com.mysql.cj.exceptions.UnableToConnectException: 

Cannot load connection class because of underlying exception

 

3.

 

Caused by: com.mysql.cj.exceptions.WrongArgumentException: 

Malformed database URL, failed to parse the main URL sections.

 

결론부터 말하자면 mysql 연동하다가 설정 파일에 url에 문제가 있어서 연결 못하겠다는 뜻이다.

 

 

 

 

 

https://coding-log.tistory.com/253

 

Spring boot에 서버 MySQL DB 연동하기 (with AWS RDS, gradle, maven, yml, properties)

https://coding-log.tistory.com/252 AWS에서 프리티어로 DB 서버 구축하기 (with MySQL, RDS) + MySQL Workbench에서 접속하기 AWS에 학생 계정이라는 것이 있었다. 흔히 인터넷에서 학생계정으로 무료로 쓰고 있었는

coding-log.tistory.com

 

전에 포스팅했던 글에서 설정 파일만 가져와보자.

 

어떤 설정파일이 됐건 DB와 프로젝트를 연결하기 위해서는 JDBC를 사용해 연동해야 한다.

그러기 위해서는 url을 다음과 같은 형식으로 작성해야 한다.

 

 

 

url: jdbc:mysql://엔드포인트:포트번호/db스키마이름?serverTimezone=Asia/Seoul&characterEncoding=UTF-8

 

 

 

이게 올바른 형식이다. 물론 spring, mysql을 사용했을 때 기준이다.

참고로 aws 서버 db와 연결했기 때문에 엔드포인트이고 로컬에서 작업한다면 localhost라고 적혀있어야 한다.

? 이후 부분은 필수는 아니지만 개발할 때 결국엔 필수적으로 필요해지는 서버 시간과 한글 인코딩 관련이다.

 

 

난 아무리 봐도 문제가 없었는데 아니라고 해서 별짓을 다하고 인터넷에 쳐봤는데 결국엔 내가 저기 '?' 부분에 복사해서 붙여 넣다가 물음표를 두 개 넣어서 저런 에러가 발생했다. 그런데 물음표보다도 앞에 직접 입력하는 값들에 너무 집중한 나머지 오타를 나중에 발견했다.

 

 

 

 

✔️체크리스트

 

1. 오타는 없는가? (스펠링)

2. 스키마가 존재하는가?

3. 포트 번호가 틀리지는 않았는가?

4. (서버 db 사용한 경우) 서버에 접속권한이 있는가? 혹은 서버가 켜져있는가?

 

나 같은 실수하는 사람 또 없기를... 있다면 이 블로그를 빠른 시간 내에 찾아서 시간을 절약하기를.

 

 

 

반응형
myoskin