未解決的透過 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中文網其他相關文章!