Docker의 My Go 앱이 Mac의 MySQL에 연결할 수 없는 이유는 무엇입니까?

Patricia Arquette
풀어 주다: 2024-10-29 07:07:02
원래의
454명이 탐색했습니다.

Why Can't My Go App in Docker Connect to MySQL on my Mac?

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!