首頁 >後端開發 >Golang >如何解決在 Docker 中連接到 MySQL 伺服器時出現「撥號 tcp 127.0.0.1:3306: connect: 連線被拒絕」錯誤?

如何解決在 Docker 中連接到 MySQL 伺服器時出現「撥號 tcp 127.0.0.1:3306: connect: 連線被拒絕」錯誤?

DDD
DDD原創
2024-10-28 15:59:01431瀏覽

How to Resolve

未解決的透過 Docker 到 MySQL 伺服器的撥號 TCP 問題

無法與在 Docker 中執行的 MySQL 伺服器建立連線?你並不孤單。讓我們深入研究這個常見問題並探討潛在的解決方案。

問題:

您遇到「撥號tcp 127.0.0.1:3306: connect: 連線被拒絕」嘗試使用Go 從Docker 容器內連線到MySQL 資料庫時出錯。您的 MySQL 伺服器在 localhost:3306 上正常執行,但與您的 Go 應用程式的連線失敗。

解:

問題的癥結在於 Docker 的隔離。預設情況下,Docker 容器運行在與主機系統隔離的網路環境中。這種分離可以防止容器直接存取主機提供的服務,包括在本機上執行的 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 伺服器時出現「撥號 tcp 127.0.0.1:3306: connect: 連線被拒絕」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn