인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

wsim님의 프로필 이미지

작성한 질문수

비전공자도 이해할 수 있는 Docker 입문/실전

컨테이너로 실행시킨 Spring Boot가 MySQL에 연결이 안 되는 이유

failed to connect to mysql

작성

·

79

0

gradlew build 이후

compose up 했을 때

mysql만 올라오고 spring boot서버는 안올라오는 상황입니다.

gui db로 접속하려고 하니 밑의 그림과 같이 뜹니다.

image.png

제가 직접 컨테이너에 접근하여 접속한 결과

image.png

다음과 같이 똑같은 id,pw로 로그인이 되는데

왜 gui환경에서만 로그인이 안되는 걸까요?

  1. root계정으로 접속 후 저 계정에 대한 비밀번호를 변경해보았습니다.

  2. root계정 접속 후 저 계정에 대한 모든 권한을 부여하였습니다.

차이점

application.yml파일에서 username: root로 실행하면

스프링부트도 잘 올라오는데 username:xoxoxmin1268

이런식으로 제 아이디를 넣으면 다음과 같은 로그 뜹니다.

image.pngimage.png

 

답변 2

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요 wsim님! 질문 잘 주셨어요ㅎㅎㅎ

혹시 강의 실습을 그대로 따라하셨는데도 작동을 안 하시는 상태이실까요?

그리고 작성하신 compose 파일의 코드도 같이 첨부해서 보여주시기 바랍니다!

wsim님의 프로필 이미지
wsim
질문자

안녕하세요.
이것저것 해보다가 아무래도 MySQL쪽에 문제가 있는 것 같아서 아에 컴퓨터를 포맷시켰습니다. 지금 다시 해보고 안되면 말씀드리겠습니다!

wsim님의 프로필 이미지
wsim
질문자

아무래도 mysql workbench문제인것같네요
이 부분은 제가 해결해보겠습니다

감사합니다!

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

네 알겠습니다!!

해결 시도해보시다가 또 막히시면 질문 한 번 남겨주세요~~~

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. wsim님 질문 주셔서 감사합니다.

현재 문제는 GUI 툴에서 MySQL에 접속할 때 발생하는 Access denied for user 오류입니다. 일반적으로 이 문제는 사용자 권한이나 설정 사항이 일치하지 않을 때 발생합니다. 아래에 몇 가지 점검할 사항과 해결방법을 안내드리겠습니다.

  1. 사용자 권한 설정:

    • 직접 MySQL에 접속하여 해당 사용자(xoxoxmin1268)에 대한 권한을 한 번 더 검토 해보시기 바랍니다. 모든 권한이 부여되었는지 확인하십시오. 만약 설정이 제대로 되어 있지 않다면 다음 명령어를 사용하여 권한을 부여해보세요:
      
      GRANT ALL PRIVILEGES ON *.* TO 'xoxoxmin1268'@'%';
      FLUSH PRIVILEGES;
      

    • 이때, @'%'는 모든 호스트로부터의 접근을 허용하겠다는 의미입니다.
  2. User와 Host 확인:

    • MySQL은 사용자가 로그인하려는 호스트와 일치하는지 비교합니다. 따라서 GUI에서 접속할 때와 CLI에서 접속할 때 사용한 hostnameusername을 다시 한 번 확인하셔야 합니다.
    • 보안 상의 이유로 MySQL은 localhost(내부)와 외부 IP에 대해 별개의 권한을 가질 수 있습니다.
  3. 로그인 정보 점검:

    • GUI 툴(MySQL Workbench)에서 사용하시는 login 정보가 CLI에서 사용되는 것과 동일한지 재확인하시기 바랍니다.
  4. Spring Boot 설정:

    • application.yml 파일에서 지정한 사용자명이 문제가 될 수 있습니다. xoxoxmin1268 사용자를 통해서 실행할 때만 문제가 발생하는지, 해당 사용자가 실제로 MySQL에 접속할 수 있도록 모든 설정이 되어 있는지를 체크해보세요.

관련 유사 질문도 체크해보시면 도움이 될 수 있습니다:
- Access denied for user ‘root’@‘localhost’ (using password: YES) - 이 답변에서는 데이터베이스 사용자와 권한을 재설정하는 방법을 설명합니다.

도움이 되었기를 바랍니다. 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏

wsim님의 프로필 이미지

작성한 질문수

질문하기