Java에서 쓰이는 MySQL Connector 8.0을 사용하면 다음과 같은 에러가 발생할 수 있습니다.
또한 MySQL 5.7에서 mysql 인증 플러그인을 mysql_native_password에서 sha256_password로 변경시 다음과 같은 에러가 발생할 수 있습니다.
Exception in thread "main" java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed
즉 Public Key Retrieval 속성이 사용되지 않았다는 얘기입니다. 8.x부터는 강제 의무 사항으로 이 속성을 true로 반드시 변경해 주어야 합니다.
1. Java driver 속성 추가 방법
jdbc driver url속성에서 allowPublicKeyRetrieval=true&useSSL=false 속성을 추가합니다.
jdbc:mysql://localhost:3306/db?allowPublicKeyRetrieval=true&useSSL=false
2. dbeaver
DBMS 무료 접속툴인 dbeaver에서 다음과 같이 설정합니다.
대부분 DB Tool에서 위와 같은 옵션을 지원합니다. 위의 옵션을 TRUE로 변경합니다. 그럼 접속이 가능하게 됩니다.
'Databases > MySQL' 카테고리의 다른 글
[MySQL] 접속 세션에 바이너리 로깅 사용하지 않기 (0) | 2021.08.01 |
---|---|
[MySQL] 복제환경에서 Binary 로그 관리 명령어 (0) | 2021.08.01 |
[MySQL] Thread 모니터링 및 튜닝 (0) | 2021.07.26 |
[MySQL] SSL/TLS 접속 확인 방법 (0) | 2021.07.23 |
[MySQL]카탈로그를 이용하여 각종 정보 조회 (0) | 2021.07.18 |