MySQL Workbench "Cannot Connect to Database Server" 오류 해결 방법

류재민·2025년 4월 11일

MySQL

목록 보기
1/1

MySQL Workbench root 계정 연결 오류 해결 방법 (Authentication plugin 오류)

최근 MySQL 8.0 이상 버전에서 PHP 또는 Workbench를 통해 root 계정으로 접속하려고 할 때 아래와 같은 오류 메시지를 본 적이 있을 겁니다.

Authentication plugin 'caching_sha2_password' reported error:  
Authentication requires secure connection.

이 오류는 MySQL의 기본 인증 방식이 caching_sha2_password로 바뀌었기 때문입니다. 일부 환경에서는 SSL 기반의 보안 연결이 없으면 해당 방식으로 로그인할 수 없습니다. 특히 PHP나 구버전 Workbench에서 이 문제를 많이 겪습니다.


문제 원인 정리

MySQL 8.0부터 caching_sha2_password가 기본 인증 방식입니다.
하지만 다음과 같은 경우에는 이 인증 방식을 제대로 지원하지 못합니다.

  • PHP에서 mysqli_connect()로 연결 시
  • MySQL Workbench에서 SSL 설정 없이 접속 시
  • 레거시 클라이언트 도구 사용 시

해결 방법

root 계정 인증 방식을 mysql_native_password로 변경

  1. CMD 또는 XAMPP Shell 열기
mysql -u root -p --port=3307

필자는 현재 서버 포트가 3307이어서 포트를 명시했지만 3306인 경우 MySQL의 기본 포트이기 때문에 --port=3307은 생략 가능합니다.

비밀번호 입력 → 기존에 설정한 root 계정 비밀번호 입력 (예: 1234)

  1. 인증 플러그인 변경
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '원하는_비밀번호';
FLUSH PRIVILEGES;

예시:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'superSafe987!';
FLUSH PRIVILEGES;
  1. 변경 확인 후 정상 접속 여부 테스트
  • MySQL Workbench 다시 실행 → root 계정 연결 시도
  • PHP 코드에서도 새 비밀번호로 접속 테스트

PHP 코드 예시 (포트와 비밀번호 주의)

<?php
$con = mysqli_connect("localhost", "root", "superSafe987!", "", 3307);

if (!$con) {
    die("접속 실패: " . mysqli_connect_error());
}
echo "MySQL 접속 성공!";
mysqli_close($con);
?>

✅ MySQL 포트를 3307로 바꿨다면 꼭 위처럼 포트 번호도 지정해야 합니다.


보안 팁

  • 가능한 한 root 계정은 개발용으로만 사용하세요.
  • 실서버에서는 새로운 사용자 계정을 만들어 사용하고, 최소 권한만 부여하는 것이 좋습니다.
  • 비밀번호는 주기적으로 변경하고, 특수문자 포함하여 안전하게 설정하세요.

마무리

이 문제는 처음 보면 막막할 수 있지만, 인증 방식만 이해하면 깔끔하게 해결됩니다.
저도 처음엔 이유도 모르고 Workbench 연결이 안 돼서 당황해서 포트 번호도 바꿔보고 XAMPP를 껐다키고 MySQL을 재설치하고 재부팅하고 다 해봤지만, 이 과정을 통해 인증 방식의 차이를 이해하게 되었습니다.

혹시 같은 문제를 겪는 분들께 도움이 되길 바랍니다! 🙌


📌 Reference

  • 공식 문서: MySQL 8.0 Authentication
  • 기본 포트가 아닌 경우 mysqli_connect()의 포트 지정 필수
  • XAMPP + MySQL + PHP 환경 기준

0개의 댓글