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 중국어 웹사이트의 기타 관련 기사를 참조하세요!