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

박원준님의 프로필 이미지
박원준

작성한 질문수

실전! FastAPI 입문

(실습) ORM 적용 - GET 단일 조회 API

해결된 질문

작성

·

336

0

sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1045, "Access denied for user 'root'@'localhost' (using password: YES)")

이와같은 오류가 발생하는데


https://www.inflearn.com/questions/1009261/orm%EC%A0%81%EC%9A%A9-postapi-%EA%B0%95%EC%9D%98

이 분 글 보면 맨 마지막에 백그라운드에서 mysql이 실행되고있는걸 끄신걸로 해결하셨다는 것 같은데 그게 정확히 어떻게 하셨다는 건지 잘 모르겠고...ㅜㅜ 그게 저 오류랑 무슨 관계가 있었던건지도 궁금합니다.

일단 오류를 검색해보고 추론해본 생각으로는
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=todos -e MYSQL_DATABASE=todos -d -v todos:/db --name todos mysql:8.0
이걸로 만든 pw가 todos인 db에 접속하지 못한다는 내용인 것 같은데(이것도 맞는지 궁금합니다)

1. 위 문제 해결방법
2. 만약 pw가 문제라면 이를 연결하는 부분을 담당하는 코드(파일)가 connnection.py 의 내용인것 같은데 여기에 해당 db의 pw를 명시하는 부분이 있는지, 아니면 다른 곳에 위치하는지 궁금합니다(관련 글 찾아보던 중 해당 db의 pw자체를 없애라길래 없애지 않고 진행하는 방법은 없는건지 의문이 들어서 질문드립니다..!)

답변 1

0

신동현님의 프로필 이미지
신동현
지식공유자

안녕하세요! 지금 겪고 계신 문제는 기본적으로 MySQL 접속시 계정 정보가 올바르지 않은 문제인데요. Docker로 띄운 MySQL 컨테이너와 별개의 MySQL이 로컬 환경에서 이미 실행 중이기 때문에 MySQL 접속시 docker run 명령어로 지정한 username, password를 사용할 수 없는 것입니다. 따라서 로컬 환경에서 이미 실행 중인 MySQL이 있다면 이를 종료해주셔야 정상적으로 MySQL 접속이 가능합니다.

Windows 환경을 사용 중이신걸로 보이는데, MySQL Community Server를 다운받아서 실행한적이 있으신가요?

박원준님의 프로필 이미지
박원준
질문자

(윈도우 사용자 맞습니다! 금방 답변해 주셨는데 늦게서야 확인했네요ㅜㅜ) 네 예전에 MySQL Community Server를 다운받아 실행한 적이 있는데 수업중에 따로 mysql을 실행하지는 않았습니다. 그런 경우에도 로컬 환경에서 MySQL이 실행되는 경우가 있나요?

수업을 한번에 연속적으로 쭉 시청한게 아니어서 듣다가 프로그램들을 전부 종료하고 다시 키는 과정에서 저런 일이 생기더라구요 추가적으로 강사님 진행하시는 화면이 (파이참으로 보여주실 때 외에) 리눅스 터미널 위주로 보여주셔서 윈도우에서 어떤 터미널에서 진행해야되는지 확신을 못하고 몇몇 명령어를 입력한 적이 있는데 그런 것 때문일 수 도 있을까요...?

신동현님의 프로필 이미지
신동현
지식공유자

이전에 실행하신 MySQL을 따로 종료하지 않으셨으면 그대로 동작중일 것 같습니다. 다음 글을 참고해서 MySQL을 종료해주세요.

Windows 환경에서 실습하시는 경우에는 PowerShell을 사용하시면 됩니다.

박원준님의 프로필 이미지
박원준
질문자

해결되었습니다 강사님! (감사합니다!! ㅜㅜ)

추가로 한가지만 더 질문이 있는데, 알려주신 글에서 MYSQL속성창에서 시작유형을 수동으로 바꿔야 매번 이런 상황이 나지 않는 걸까요?

신동현님의 프로필 이미지
신동현
지식공유자

네, MySQL이 자동으로 실행되지 않기 위해서는 수동으로 변경해주셔야 합니다.

박원준님의 프로필 이미지
박원준

작성한 질문수

질문하기