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

이응이응이응님의 프로필 이미지

작성한 질문수

재고시스템으로 알아보는 동시성이슈 해결방법

재고감소 로직작성

Access Denied for user ‘root’@’localhost’ (using password: YES)

작성

·

3.3K

·

수정됨

0

몇시간동안 삽질해보고 여기 질문글도 뒤져봤는데 답이 없어서 결국 질문 드립니다 😂

현재 진행 상황:

✔️ 환경 세팅 완료

✔️ 재고 감소 테스트 코드 작성

전체 애플리케이션을 실행 시키는데, Access Denied for user ‘root’@’localhost’ (using password: YES) 이런 에러가 뜨길래, MySQL 쪽을 계쏙 건드려보았습니다. 그래도 똑같더라고요 ,,

제가 시도한 방법들 입니다:

https://legend-danger-266.notion.site/Access-Denied-for-user-root-localhost-using-password-YES-e0f3cdec520843ed9767d7fec583b9b1

혹시 원하시면 소스 압축해서 보내 드리겠습니다 ,, 🥲 도커 쪽 문제인지 어디인지 모르겠네요 도커 실행시키던 끄던 똑같은 에러가 발생하더라고요

 

답변 3

0

안녕하세요 저는 로컬 mysql과 도커 mysql 포트번호가 같아서 발생하는 문제였습니다.
컨테이너 삭제 후 3307로 포트 번호 바꿔서 생성하니 잘되네여
docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=1234 --name mysql mysql

0

안녕하세요 저도 같은 상황인데 도커가 아닌 로컬에 3306으로 mysql이 실행되어서 그런가 싶어 도커의 mysql은 3307로 생성을 했는데 run하니까 무한 로딩이에요ㅜ

0

최상용님의 프로필 이미지
최상용
지식공유자

이응이응이응님 안녕하세요.

초기설정을 할때 무언가 꼬인 것 같습니다.

  1. docker ps 에서 나오는 mysql 의 container id 를 복사합니다.

  2. imagedocker stop {mysql-container-id}

  3. docker rm {mysql-container-id}

까지 완료한 이후에 mysql 을 아래와 같이 다시 실형시켜줍니다.

  1. docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 --name mysql mysql

  2. docker ps 명령어를 실행해 나오는 mysql 의 container id 를 복사합니다.

  3. docker exec -it mysql bash 명령어를 실행하여 접속합니다.

  4. mysql -u root -p 명령어를 실행하고 비밀번호에 1234를 입력합니다.

  5. create database stock_example; 를 실행하여 데이터베이스를 생성해줍니다.

  6. Spring Boot 의 application.yml 파일의 내용을 아래의 내용으로 변경해줍니다.

spring:
  jpa:
    hibernate:
      ddl-auto: create
    show-sql: true
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/stock_example
    username: root
    password: 1234

 

제 예상으로는 계정정보 혹은 설정에서 무언가 꼬인것 같습니다.
계정정보를 예제와 동일하게 id: root, pw: 1234 로 진행한 후에 동일한 문제가 발생하는지 확인해주실 수 있으실까요 ?

긴 답변 감사합니다 !! 똑같은 에러가 발생합니다 ..

image

docker ps -a 했을 때 현재 도커 목록들인데 관련 있을까요 .. ? 목록 중 사이드 프로젝트에서 사용 중인 mysql이 있긴 합니다.

CONTAINER ID   IMAGE        COMMAND                  CREATED          STATUS                      PORTS                               NAMES
cdcf1e45c75c   mysql        "docker-entrypoint.s…"   23 minutes ago   Up 3 seconds                0.0.0.0:3306->3306/tcp, 33060/tcp   mysql
7628ccb76442   front:v1     "docker-entrypoint.s…"   2 months ago     Exited (127) 2 months ago                                       test
6a8b3e05775d   yy-test:v1   "docker-entrypoint.s…"   2 months ago     Exited (127) 2 months ago                                       front
822c9a93ff20   mysql:5.7    "docker-entrypoint.s…"   2 months ago     Exited (255) 29 hours ago   33060/tcp, 0.0.0.0:3307->3306/tcp   viside-mysql
9c7cc2f02055   redis        "docker-entrypoint.s…"   2 months ago     Exited (255) 29 hours ago   0.0.0.0:6379->6379/tcp              viside-redis

처음 docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 --name mysql mysql 실행할 때

docker: Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: address already in use.

이 에러가 발생했는데, 계속 해당 pid 죽였는데 안 죽길래 ..

검색해보다가 도커 재시작 docker restart containerID 수행하면 된다는 걸 봐서 이렇게 재 시작한 상태입니다.

최상용님의 프로필 이미지
최상용
지식공유자

docker ps -a 해서 나온 mysql 들을 다 삭제한 후에 처음부터 다시 해봐도 똑같은 오류가 발생하시나요 ?