Docker의 Go에서 MySQL에 연결할 때 "dial tcp 127.0.0.1:3306: 연결: 연결이 거부되었습니다." 오류:
Go 및 Docker를 사용하여 Mac에서 실행 중인 MySQL 서버에 연결을 시도하면 "dial tcp 127.0.0.1:3306: connect: 연결이 거부되었습니다."라는 오류 메시지가 나타납니다. 이 오류는 Navicat for MySQL을 사용하여 localhost:3306의 데이터베이스에 성공적으로 연결했는데도 발생합니다.
이 오류는 Mac에서의 Docker 격리 특성으로 인해 발생합니다. Docker는 표면 아래의 가상 머신(VM)에서 실행되므로 호스트 머신에서 제공하는 서비스에 직접 액세스하기가 어렵습니다.
이 문제를 해결하려면 docker.for.mac.localhost를 사용하도록 연결 문자열을 조정하세요. 127.0.0.1:3306 대신 :3306. 이 특별한 호스트 이름은 Docker 컨테이너와 호스트 시스템 간의 통신을 허용합니다.
수정된 Go 코드는 다음과 같아야 합니다.
<code class="go">db, err = sql.Open("mysql", dbUser+":"+dbPassword+"@tcp(docker.for.mac.localhost:3306)/"+dbName)</code>
이 수정으로 연결 문제가 해결되고 호스트 시스템 간의 통신이 가능해집니다. Go 애플리케이션과 호스트 시스템에서 실행 중인 MySQL 서버를 실행하세요.
위 내용은 Docker의 My Go 앱이 Mac의 MySQL에 연결할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!