Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- R2DBC
- Trino
- 유방암보호자
- useSSL
- trino jdbc
- Public Key Retrieval is not allowed
- MultiModule
- Microservice
- retrieval
- spybean
- mockbean
- log4j version up
- 내가보려고한
- 멀티모듈
- 유방암보호자일기
- jdbc 연동오류
- ecs layout
- 유방암일기
- 유방암
- 좋은개발
- $partitions
- TestCase
- OncePerRequestFilter
- r2dbc pool
- Infrastructure as Code
- java
- show partition
- 현대자동차코테
- allowPublicKeyRetrieval
- 현대자동차코테후기
Archives
- Today
- Total
우당탕 개발일지
[Mysql Jdbc] Public Key Retrieval is not allowed 해결 본문
배포 진행 중 당혹스러운 아래와 같은 에러를 발견했습니다.
Caused by: com.mysql.cj.exceptions.UnableToConnectException: Public Key Retrieval is not allowed
at jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(Unknown Source) ~[?:?]
at java.lang.reflect.Constructor.newInstanceWithCaller(Unknown Source) ~[?:?]
at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:?]
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:62) ~[mysql-connector-j-8.0.33.jar:8.0.33]
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:86) ~[mysql-connector-j-8.0.33.jar:8.0.33]
at com.mysql.cj.protocol.a.authentication.Sha256PasswordPlugin.nextAuthenticationStep(Sha256PasswordPlugin.java:140) ~[mysql-connector-j-8.0.33.jar:8.0.33]
원인
Mysql 8.0 버전부터는 jdbc 드라이버의 ssl 설정 보안이 엄격하게 변경되었습니다.
따라서 SSL 관련된 인증 설정 정보에 대해서 명시적으로 지정하여 설정해야 합니다.
해결방법
jdbc url 에 useSSl , allowPublicKeyRetrieval 를 추가해줘야 합니다.
useSSL=false&allowPublicKeyRetrieval=true
2개의 설정 정보는 아래와 같습니다.
allowPublicKeyRetrieval : 공개키를 검색할 수 없도록 하는 설정. true 인 경우 클라이언트가 서버의 공개키를 검색할 수 있도록 허용
useSSL : jdbc 연결을 SSL 로부터 보호할지 여부. default 는 false