>  기사  >  백엔드 개발  >  Docker에서 MySQL 서버에 연결할 때 \"dial tcp 127.0.0.1:3306: connect: 연결 거부됨\" 오류를 해결하는 방법은 무엇입니까?

Docker에서 MySQL 서버에 연결할 때 \"dial tcp 127.0.0.1:3306: connect: 연결 거부됨\" 오류를 해결하는 방법은 무엇입니까?

DDD
DDD원래의
2024-10-28 15:59:01337검색

How to Resolve

Docker를 통해 MySQL 서버에 대한 해결되지 않은 다이얼 TCP 문제

Docker에서 실행 중인 MySQL 서버에 대한 연결을 설정할 수 없습니까? 당신은 혼자가 아닙니다. 이 일반적인 문제를 자세히 살펴보고 잠재적인 해결책을 살펴보겠습니다.

문제:

"dial tcp 127.0.0.1:3306: connect: 연결이 거부되었습니다"라는 메시지가 나타납니다. Go를 사용하여 Docker 컨테이너 내에서 MySQL 데이터베이스에 연결하려고 할 때 오류가 발생했습니다. MySQL 서버는 localhost:3306에서 작동하지만 Go 애플리케이션의 연결에 실패합니다.

해결책:

문제의 핵심은 Docker의 격리에 있습니다. 기본적으로 Docker 컨테이너는 호스트 시스템과 격리된 네트워크 환경에서 실행됩니다. 이러한 분리는 컨테이너가 localhost에서 실행되는 MySQL 서버를 포함하여 호스트 시스템에서 제공하는 서비스에 직접 액세스하는 것을 방지합니다.

이 제한을 우회하려면 다음을 사용하여 연결 문자열을 수정하여 호스트 시스템의 IP 주소를 지정할 수 있습니다. 특수 호스트 이름 docker.for.mac.localhost. 수정된 연결 문자열은 다음과 유사해야 합니다.

db, err = sql.Open("mysql", dbUser+":"+dbPassword+"@tcp(docker.for.mac.localhost:3306)/"+dbName)

호스트 이름을 docker.for.mac.localhost로 수정하면 Docker 컨테이너가 네트워크 브리지를 통해 호스트 시스템에서 실행 중인 MySQL 서버와 연결을 설정할 수 있습니다. .

추가 참고 사항:

추가 지침 및 문제 해결 팁은 네트워킹에 대한 Docker 설명서를 참조하세요. 이 해결 방법은 특정 설정에 따라 추가 네트워크 구성이 필요할 수 있다는 점을 기억하세요.

위 내용은 Docker에서 MySQL 서버에 연결할 때 \"dial tcp 127.0.0.1:3306: connect: 연결 거부됨\" 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.