728x90
문제상황
FastAPI에서 sqlalchemy를 이용해 db와 연결하던 중 테스트를 위해 local에 연결하였는데, 다음과 같은 에러가 발생했었다.
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on 'localhost' ([Errno 99] Cannot assign requested address)")
(Background on this error at: https://sqlalche.me/e/14/e3q8)
원인(추정)
mysql 컨테이너가 docker 내부 네트워크를 사용해서 다른 컨테이너에서 접근이 불가능
해결 방법
# 기존 코드
LOCAL_SQLALCHEMY_DATABASE_URL = "mysql+pymysql://root:Joan_Miro_1023@localhost:3306/image"
# 수정 코드
LOCAL_SQLALCHEMY_DATABASE_URL = "mysql+pymysql://root:password@host.docker.internal:3306/image"
알게 된 것
다른 프로젝트들의 docker-compose 파일들을 보면 항상 db와 app을 같이 올렸다 내렸다 했었는데, 굳이 db까지 올렸다 내릴 필요가 있나 싶었다.
이 문제를 보고나니 네트워크를 공유하기 위함이 아니었나 생각이 든다.
728x90
'코딩코딩 > 웹개발' 카테고리의 다른 글
[flutter] flutter socketexception os error connection refused errno = 111 (0) | 2022.03.24 |
---|---|
[postgresql] docker-compose에서 지정하는 환경변수 목록 (0) | 2022.03.24 |
[fastAPI] 422 unprocessible entity (0) | 2021.12.14 |
[fastAPI] Did not find boundary character 에러 (0) | 2021.11.29 |
[CSS] flexbox 속성들 (0) | 2021.08.27 |
댓글