Skip to content

TIL - 2025-03-21[MySQL Rancher Desktop + IntelliJ 연결 오류 트러블슈팅] #14

@Sewoni

Description

@Sewoni

🍋TIL - 2025 -03 - 21 - Friday

📚 오늘의 학습

  • 🍀 Rancher Desktop 다운 후 Intellij에 MySQL 연결
  • 🍀 Supabase 를 활용한 PostgresSQL 연결
  • 🍀 초기 설정에서 인증 방식과 이미지 호환성의 중요성

🚨 문제 상황

Rancher Desktop로 MySQL을 실행한 후 IntelliJ에서 데이터베이스 연결을 시도했지만,
계속해서 다음과 같은 오류가 발생함:

Image

Access denied for user 'root'@'localhost'
Connection refused
비밀번호, 사용자 계정 설정 모두 맞췄음에도 연결이 되지 않아서 문제 원인 파악에 어려움을 겪음.

🎯 시도한 과정

여러 가지 접근 방식으로 문제를 해결하려 했지만 실패:

  • MySQL 기본 이미지(mysql:8.0) 사용
  • ALTER USER를 통해 인증 방식 변경
  • root@% 계정 생성 및 권한 설정
  • IntelliJ에서 Host를 127.0.0.1, Port를 3306 또는 3307으로 시도
  • 컨테이너 삭제 및 재생성 반복
  • 그러나 여전히 연결 오류는 해결되지 않음.
    -> 하지만 여전히 연결 실패… 이유는? → 인증 방식 적용이 불완전 / ARM 환경에서 이미지 미지원

##🛠️ 해결 방법
기존 mysql:8.0 이미지 대신 mysql:8.0.41-oraclelinux9 이미지 사용
실행 시 아래 명령어로 인증 plugin을 아예 명시:

docker run -d --name my-mysql \
  -e MYSQL_ROOT_PASSWORD=0000 \
  -e MYSQL_ROOT_HOST=% \
  -p 3306:3306 \
  mysql:8.0.41-oraclelinux9 \
  --default-authentication-plugin=mysql_native_password

이 이미지에서는 ARM(M1/M2) 환경 호환도 좋고, 인증 plugin도 정상 적용됨
이후 IntelliJ에서 정상적으로 연결 확인됨 (Succeeded)

Image Image

##💡알게 된 점

  • MySQL 8.0 기본 이미지는 caching_sha2_password 인증 방식을 기본으로 사용함.
  • 이 방식은 최신이지만, IntelliJ, DBeaver, 일부 JDBC 드라이버와 호환되지 않아 접속 오류가 자주 발생함.
  • ALTER USER로 인증 방식을 바꿔도 컨테이너 재시작이나 환경에 따라 다시 초기화되거나 무시될 수 있음.
  • 가장 안정적인 해결법은 컨테이너 실행 시점에 --default-authentication-plugin=mysql_native_password 옵션을 직접 명시하는 것.
  • 게다가 Mac M1/M2 (ARM64) 환경에서는 mysql:8.0 일부 이미지가 호환되지 않거나 동작이 불안정할 수 있으므로,
  • mysql:8.0.41-oraclelinux9와 같은 ARM 호환 이미지를 사용하는 것이 훨씬 안전하고 안정적.
  • 결국 문제의 본질은 "비밀번호나 계정 권한"이 아니라, "인증 방식과 이미지 호환성"이었다.

🐳 느낀 점

  • MySQL 8.0 이상 + 외부 툴 연동 시에는 항상 인증 방식을 명시하자.
  • ARM 환경에서는 이미지 호환성 확인은 필수!
  • 단순한 접근 거부가 아닌, 근본 원인을 파악하는 사고력이 중요하다.

👩‍💻 참고 자료

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions