首頁 > 後端開發 > Golang > 主體

當遇到「連線被拒絕」時,如何從 Docker 中的 Go 應用程式連接到 MySQL 伺服器?

Linda Hamilton
發布: 2024-10-30 05:33:28
原創
561 人瀏覽過

How to Connect to a MySQL Server from a Go Application in Docker When Encountering

錯誤:在Docker 中從Go 連接到MySQL 伺服器時連接被拒絕

當嘗試從Docker 中運行的Go 應用程式連接到MySQL 伺服器時,開發人員可能會遇到出現以下錯誤:

dial tcp 127.0.0.1:3306: connect: connection refused
登入後複製

原因:

預設情況下,Docker 容器運行在隔離的網路空間中,使得運行在其中的應用程式無法直接存取主機機器的本機。

解決方案:

要解決此問題,請使用特殊主機名稱docker.for.mac.localhost 而不是本地主機。此位址可以透過使用Docker 網路與主機的服務進行通訊:

  1. 更新Go 程式碼中的連接字串:
<code class="go">db, err = sql.Open("mysql", dbUser+":"+dbPassword+"@tcp(docker.for.mac.localhost:3306)/"+dbName)</code>
登入後複製
  1. 如果使用Docker Compose,將以下行加入資料庫容器的服務定義下的docker-compose.yml 檔案中:
<code class="yml">ports:
  - "3306:3306"</code>
登入後複製

這將會對應主機的連接埠3306到容器的連接埠3306,允許Go 應用程式透過正確的連接埠進行連接。

以上是當遇到「連線被拒絕」時,如何從 Docker 中的 Go 應用程式連接到 MySQL 伺服器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板