만약 “Public Key Retrieval is not allowed” 에러가 발생해서 연결이 안 되는 상태라면
JDBC URL에 옵션을 추가해줘야 합니다.
✅ 해결 방법 (DataGrip에서)
1. 위 화면에서 “URL” 쪽에 다음처럼 수정하세요:
기존:
jdbc:mysql://localhost:3306/
수정:
jdbc:mysql://localhost:3306/?allowPublicKeyRetrieval=true&useSSL=false
✅ 주의: ? 뒤에 옵션들을 붙여야 하고, 여러 개일 땐 &로 연결해줘야 해요.
2. 또는 “Driver Properties” 탭에서 설정해도 됨
1. 왼쪽 탭에서 Driver properties 클릭
2. 아래쪽에 + 버튼 눌러서 새 속성 추가
3. 다음처럼 추가:
NameValue
allowPublicKeyRetrieval | true |
useSSL | false |
3. 그 다음 하단에서 Test Connection… 눌러보세요!
연결 성공하면, 초록색 ✅ 나오면서 연결 완료될 거예요.
필요하다면 MySQL 사용자 인증 방식도 바꾸는 방법도 알려 드리겠습니다.
그런데 지금 설정으로는 URL 수정만으로 해결될 가능성이 높아요 😊
아마 DataGrip에서 MySQL 연결 설정을 하려다가, Public Key Retrieval is not allowed 오류가 뜨는 상황일 거예요.
이 문제는 MySQL 8.0에서 caching_sha2_password 인증 방식을 쓸 때 자주 발생합니다. 해결 방법은 크게 두 가지입니다.
1) DataGrip 연결 URL에 allowPublicKeyRetrieval=true 옵션 추가하기
가장 간단하고 추천하는 방법은 연결 URL에 allowPublicKeyRetrieval=true를 붙이는 거예요.
DataGrip에서 아래 순서로 설정해보세요.
1. DataGrip에서 Database 창 → 현재 연결 설정(예: localhost)을 더블 클릭
2. Main 탭 → URL 부분을 다음처럼 수정
jdbc:mysql://localhost:3306/your_db?allowPublicKeyRetrieval=true&useSSL=false
• your_db 자리에 접속하려는 DB 이름을 넣어주세요.
• useSSL=false는 로컬 개발 환경일 때만 쓰고, 실제 서비스에서는 true로 바꾸는 걸 권장해요.
3. Test Connection 버튼 눌러서 연결 테스트
이렇게 하면 Public Key Retrieval is not allowed 오류 없이 바로 연결될 거예요.
2) MySQL 사용자 인증 방식을 mysql_native_password로 바꾸기
만약 URL 수정이 불편하거나, 여러 툴에서 계속 쓸 일이 있다면, MySQL 쪽에서 인증 방식을 아예 바꿀 수도 있어요.
1. 터미널에서 MySQL 클라이언트로 접속 (예: mysql -u root -p)
2. 아래 명령어 실행:
ALTER USER 'root'@'localhost'
IDENTIFIED WITH mysql_native_password
BY '새비밀번호';
FLUSH PRIVILEGES;
3. DataGrip에서 다시 연결 테스트
이렇게 하면 MySQL이 더 이상 caching_sha2_password가 아니라 mysql_native_password로 인증을 받아들이게 되어서, Public Key Retrieval is not allowed 에러가 사라집니다.
정리
• 가장 빠른 해결: URL 끝에 ?allowPublicKeyRetrieval=true&useSSL=false 추가
• 근본적인 해결: MySQL 계정의 인증 방식을 mysql_native_password로 변경
먼저 1번 방법으로 시도해보시고, 안 되면 2번을 시도해보시면 좋습니다.
'SQL' 카테고리의 다른 글
DBeaver SQL 한글 마지막 글자 없어짐 현상 해결 방법 (0) | 2025.04.16 |
---|---|
관계형 데이터베이스(RDB)와 NoSQL 데이터베이스의 차이 (0) | 2025.04.13 |
(MYSQL) Primary Key & Index 지정하는 방법 (3) | 2024.10.10 |
MYSQL - 다른 열 사용하여 UNION 하기 (0) | 2024.10.04 |
MY SQL - 테이블 컬럼 정보 조회 (0) | 2024.09.30 |