當嘗試從Docker 中運行的Go 應用程式連接到MySQL 伺服器時,開發人員可能會遇到出現以下錯誤:
dial tcp 127.0.0.1:3306: connect: connection refused
原因:
預設情況下,Docker 容器運行在隔離的網路空間中,使得運行在其中的應用程式無法直接存取主機機器的本機。
解決方案:
要解決此問題,請使用特殊主機名稱docker.for.mac.localhost 而不是本地主機。此位址可以透過使用Docker 網路與主機的服務進行通訊:
<code class="go">db, err = sql.Open("mysql", dbUser+":"+dbPassword+"@tcp(docker.for.mac.localhost:3306)/"+dbName)</code>
<code class="yml">ports: - "3306:3306"</code>
這將會對應主機的連接埠3306到容器的連接埠3306,允許Go 應用程式透過正確的連接埠進行連接。
以上是當遇到「連線被拒絕」時,如何從 Docker 中的 Go 應用程式連接到 MySQL 伺服器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!