>백엔드 개발 >Golang >데이터베이스 초기화 실패, tcp 127.0.0.1:3306 다이얼링 중 오류 발생: 연결: 연결 거부 문제

데이터베이스 초기화 실패, tcp 127.0.0.1:3306 다이얼링 중 오류 발생: 연결: 연결 거부 문제

WBOY
WBOY앞으로
2024-02-06 10:42:041164검색

初始化数据库失败,出现错误拨号 tcp 127.0.0.1:3306: connect: 连接被拒绝 问题

질문내용

도커를 배우고 있으니 지금 시작해볼까요 그런데 이 도커로 실행하면 문제가 발생합니다. docker run --rm -p 8080:8080/tcp --env-file .env my-project:latest 다음은 내 .env 코드 중 일부입니다. Windows에서 Docker Desktop을 사용하고 있습니다. Windows의 localhost에서 Docker를 실행할 수 없습니까?

으아아아

혹시 아시는 분 계시나요? 어떤 답변이라도 대단히 감사하겠습니다

감사합니다


정답


문제는 컨테이너를 시작하면 호스트가 아닌 컨테이너 내부에서 127.0.0.1:3306에 연결을 시도하는데 포트 3306에 연결이 없어 연결이 거부되었기 때문에 오류가 발생하는 것입니다. localhost의 컨테이너에서는 모든 것이 실행됩니다.

Windows 및 Mac의 경우 이 문제는 host.docker.internal 而不是 127.0.0.1를 사용하여 쉽게 해결할 수 있습니다. 이렇게 하면 컨테이너 내에서 실행되는 서비스가 호스트 시스템에서 실행되는 MySQL 인스턴스에 올바르게 연결됩니다.

Linux의 경우 --network="host" 选项传递给 docker run 명령

만 추가하면 되므로 훨씬 더 간단합니다.

위 내용은 데이터베이스 초기화 실패, tcp 127.0.0.1:3306 다이얼링 중 오류 발생: 연결: 연결 거부 문제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제