강의

멘토링

로드맵

Inflearn brand logo image

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

송재근님의 프로필 이미지
송재근

작성한 질문수

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

Spring Boot 프로젝트 세팅 2

게시글 CRUD API 구현 10:39에서 에러 발생

해결된 질문

작성

·

291

0

현재 ArticleApplication.java를 실행하면 다음과 같은 에러가 발생하고 있습니다.

image.png

동작에는 문제가 없어서 후에 나오는 ArticleApiTest를 작성하고 실행을 해보니, 비밀번호와 아이디가 일치하지 않는다는 에러가 나오고 있습니다.


하지만 저는

docker exec -it kuke-board-mysql bash

mysql -u root -p

root(비밀번호)로 구성되어 있으며 application.yml 또한 아래 처럼 구성되어 있습니다.

server:
  port: 9000

spring:
  application:
    name: kuke-board-article-service
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://locahost:3306/article
    username: root
    password: root
  jpa:
    database-platform: org.hibernate.dialect.MySQLDialect
    open-in-view: false
    show-sql: true
    hibernate:
      ddl-auto: none

 

그래서 gpt에게 물어본 결과 mysql plugin 문제일 수 있다고 해서 아래와 같이 변경까지 해봤습니다.

image.pngimage.png

 

하지만 그럼에도 에러는 해결되지 않고 계속해서

image.png

이런 에러가 나와 질문드립니다.

 

답변 3

0

송재근님의 프로필 이미지
송재근
질문자

알려주신대로 해봤지만, 에러는 동일하게 나오고 있습니다.

현재 저의 mysql 상태가 아래와 같습니다.

image.png

로컬에서 mysql과 도커에서의 mysql이 2개가 구동되는 것 같은데, 이 부분 때문인지 궁금합니다.

 

왜냐하면 도커로 접속 후 root root로 접속을 하면 가능한데,

외부에서

mysql -h 127.0.0.1 -P 3306 -u root -p

로 접속을 하는 경우 비밀번호 root는 가능하지 않고 아무것도 입력하지 않은 상태로 Enter를 눌러야 접속이 가능해져서요.

혹시 강사님께서도 mysql이 2개로 되어있는지 아니면 1개로 구성되어있으신지 궁금합니다.

쿠케님의 프로필 이미지
쿠케
지식공유자

저는 도커로만 실행하고 로컬에는 따로 설치한적이 없기 때문에, 도커에서 1개만 구동되고 있습니다.

로컬에서도 mysql이 설치 및 실행되어 있는 상태인 것 같은데, 종료시키고 해보시겠어요?

이 때문에 충돌 나는 것 같기도 하네요.

종료하고도 안되면, 컨테이너도 재시작해보시길 바랍니다!

docker stop kuke-board-mysql

docker start kuke-board-mysql

0

쿠케님의 프로필 이미지
쿠케
지식공유자

재근님, 안녕하세요!

스크린샷 2025-01-05 오후 2.53.03.png

 

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
FLUSH PRIVILEGES;

mysql 컨테이너 접속하여 위처럼 명령어도 실행해보시겠어요?

 

오 AI 인턴 이런 것도 있군요..!

위 명령어 수행하기 전에 일단 application.yml locahost 오타가 있어보여서, localhost로 먼저 수정 및 확인해보시면 좋을 것 같습니다!

송재근님의 프로필 이미지
송재근
질문자

아.....예전에 작업한 것 때문에 삽질했네요 ㅎ....... 알려주셔서 감사합니다....

쿠케님의 프로필 이미지
쿠케
지식공유자

잘 해결되었다니 다행입니다. 화이팅입니다!

0

안녕하세요, 인프런 AI 인턴입니다. 송재근님.

현재 MySQL 연결 오류로 인해 애플리케이션 실행에 문제가 있는 것 같습니다. “Access denied for user ‘root’@‘localhost’” 에러는 대개 로그인 정보와 관련된 오류를 나타내며, 주로 MySQL의 사용자 인증이 맞지 않는 경우 발생합니다. 아래 몇 가지 사항을 확인해보시면 문제 해결에 도움이 될 수 있습니다:

  1. MySQL Connection URL 확인: application.yml 파일의 url 항목에서 localhost 철자가 잘못된 것 같습니다. ‘locahost’ 대신 ‘localhost’로 수정해보세요.

  2. Docker 컨테이너 내 MySQL 사용자 설정 확인: MySQL 컨테이너에서 정확한 인증 정보가 설정되어 있는지, ‘root’ 사용자의 비밀번호가 제대로 설정되어 있는지 확인합니다. mysql_native_password 플러그인을 사용하는 것을 보니 플러그인 문제는 아닐 가능성이 높습니다.

  3. MySQL 권한 설정: MySQL 내부에서 사용자의 호스트 정보가 %가 아니라 localhost로 맞춰져 있는지 확인합니다. 다음 명령으로 사용자 권한을 업데이트할 수 있습니다:

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
    FLUSH PRIVILEGES;
    
  4. Docker 환경 설정 확인: MySQL 컨테이너가 올바르게 실행되고 있고, 포트 매핑에 문제가 없는지 확인하세요.

유사한 문제 해결 방법을 찾기 위해 인프런 커뮤니티 게시물 중 유용한 정보를 포함하는 내용을 찾았습니다:
- MySQL Database Connection Error and Solutions (게시글 제목)

이미지나 더 구체적인 정보가 필요하시면 게시물을 추가로 확인하시는 게 좋습니다. 지속적으로 오류가 발생할 경우, 더 상세한 로그와 콘솔 출력을 첨부하여 질문을 업데이트해 주시면 추후 문제 해결에 더 많은 도움이 될 수 있습니다.

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

송재근님의 프로필 이미지
송재근

작성한 질문수

질문하기