본문 바로가기
Develop/Spring+JPA

[Spring/MariaDB] 연동 시 자주 발생하는 오류

by 연로그 2021. 12. 26.
반응형

❓ org/mariadb/jdbc/Driver : Unsupported major.minor version 52.0

👉 Java와 MariaDB 버전 맞추기 (버전 확인하는 곳)

 

❓ Driver com.mysql.cj.jdbc.Driver claims to not accept jdbcUrl

👉 해결1) application.properties에서 설정한 url에 오타 없는지 확인

👉 해결2) localhost의 경우 아래와 같이 설정해야 함

spring.datasource.url=jdbc:mysql://localhost.com:3306/DB명

 

❓ No session repository could be auto-configured, check your configuration (session store type is 'jdbc')

👉 application.properties에서 'spring.session.store-type' 제거

 

🔻 원인 파악하기

더보기

dependency에 spring-session-jdbc이 없어 JdbcOperationsSessionRepository를 찾지 못해 발생하는 오류.

 

classpath에 단일 SessionRepository가 구현되어 있으면 spring.session.store-type을 설정하지 않아도 스프링 부트가 알아서 구성해준다.

 

즉, Spring Initializr가 spring-session-jdbc를 포함시켜서 생성해야 한다.

Session 옵션을 함께 사용하려는 저장소(현재 같은 경우는 jdbc)도 함께 선택해야 Initializr가 모듈을 추가해준다.

만약 Web, Session, MySQL 옵션만 선택 했었다면 모듈이 추가되지 않는다.

 

❓ java.sql.SQLNonTransientConnectionException: 
  Could not connect to address=(host=XXXXXXX)(port=3306)(type=master)
  : Socket fail to connect to host:XXXXXXX, port:3306.

예상 원인1

: DB 서비스가 종료되어 있음 또는 접속할 DB의 주소를 잘못 입력

👉 DB가 정상적으로 구동중인지 확인

 

 

예상 원인2

: 계정에 대해 접근 권한이 없음

👉 application.properties에 적은 계정의 권한 확인

application.properties

 

🔻 DB 사용자 권한 변경하기

더보기

GRANT 명령어 자세히 보기

> GRANT ALL PRIVILEGES ON db명.* TO '사용자명';
> FLUSH PRIVILEGES;
실행 화면

 

 

예상 원인3

: MariaDB의 외부 IP 접속이 불가능

👉 50-server.conf 파일에서 bind-address를 0.0.0.0(전체 공개)로 변경

 


출처

  1. https://stackoverflow.com/questions/62797182/driver-com-mysql-cj-jdbc-driver-claims-to-not-accept-jdbcurl
  2. https://stackoverflow.com/questions/50941891/spring-session-boot-error-no-session-repository-could-be-auto-configured-chec
  3. https://tyrannocoding.tistory.com/42
  4. https://www.lesstif.com/dbms/mysql-client-port-113347417.html
  5. https://serverfault.com/questions/844103/why-is-mysql-connecting-through-socket-even-though-im-specifying-host-and-port
반응형