본문 바로가기

개발자

DBeaver Public Key Retrieval is not allowed 오류 해결방법

728x90

Public Key Retrieval is not allowed 오류는 DBeaver 에서 MySQL 연결 시 매우 자주 발생하는 문제입니다.

주로:

  • MySQL 8.x
  • MariaDB
  • Laragon
  • XAMPP
  • Docker MySQL

환경에서 발생합니다.


왜 발생하나요?

MySQL 8부터 인증 방식이 변경되면서 발생합니다.

특히 아래 인증 방식:

caching_sha2_password

사용 시 DBeaver가 공개키(Public Key)를 가져오지 못해 차단됩니다.


가장 쉬운 해결 방법 (추천)

DBeaver 연결 설정에서 아래 옵션 추가하면 해결됩니다.


1. DBeaver 실행

현재 연결하려는 DB 선택

→ 우클릭

→ Edit Connection


2. Driver Properties 이동

상단 탭:

Driver Properties

클릭


3. 아래 속성 찾기

찾아야 하는 옵션:

allowPublicKeyRetrieval

4. 값 변경

값을:

true

로 변경


5. SSL 설정도 변경 (중요)

아래 속성도 찾으세요.

useSSL

값:

false

로 변경


최종 설정 예시

속성값

allowPublicKeyRetrieval true
useSSL false

6. 저장 후 재접속

Test Connection

클릭

대부분 바로 해결됩니다.


JDBC URL로 직접 해결하는 방법

만약 Driver Properties가 어렵다면 URL에 직접 추가 가능합니다.


기존

jdbc:mysql://localhost:3306/dbname

수정 후

jdbc:mysql://localhost:3306/dbname?allowPublicKeyRetrieval=true&useSSL=false

Laragon 사용 중이라면

사용자 환경이 Laragon 같아 보이는데:

C:\laragon

Laragon MySQL에서도 자주 발생합니다.


추가로 안 되면 확인할 것

MySQL 사용자 인증 방식 확인

MySQL 콘솔 접속:

SELECT user, host, plugin FROM mysql.user;

plugin이 아래라면

caching_sha2_password

현재 오류 원인일 가능성이 큽니다.


근본 해결 방법 (선택사항)

아래 방식으로 변경 가능:

ALTER USER 'root'@'localhost'
IDENTIFIED WITH mysql_native_password BY '비밀번호';

그리고:

FLUSH PRIVILEGES;

하지만 초보자 추천은?

가장 추천하는 방법은:

✅ allowPublicKeyRetrieval=true
✅ useSSL=false

설정입니다.

이 방법이 가장 쉽고 안전합니다.


DBeaver 추천 연결 설정

Laragon + MySQL 기준 추천:

항목값

Host localhost
Port 3306
User root
Password (비어있거나 설정값)
allowPublicKeyRetrieval true
useSSL false

추가로 자주 발생하는 오류

만약 이후 아래 오류가 나오면:

Communications link failure

또는:

Access denied

이면:

  • MySQL 실행 여부
  • 포트 충돌
  • 비밀번호 문제

를 확인해야 합니다.

728x90
LIST