首頁 >後端開發 >Golang >為什麼 Docker 中的 Go 應用無法連接到 Mac 上的 MySQL?

為什麼 Docker 中的 Go 應用無法連接到 Mac 上的 MySQL?

Patricia Arquette
Patricia Arquette原創
2024-10-29 07:07:02537瀏覽

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

在Docker 中從Go 連接到MySQL 時發生錯誤:「撥號tcp 127.0.0.1:3306: connect: 連線被拒絕」

在嘗試使用Go 和Docker 連線到在Mac 上執行的MySQL 伺服器時,會出現錯誤訊息:「dial tcp 127.0.0.1:3306: connect: 連線被拒絕。」儘管使用Navicat for MySQL 成功連線到localhost:3306上的資料庫,還是會出現此錯誤。
<code class="go">db, err = sql.Open("mysql", dbUser+":"+dbPassword+"@tcp(docker.for.mac.localhost:3306)/"+dbName)</code>

由於 Mac 上 Docker 隔離的性質,會遇到此錯誤。 Docker 運行在底層的虛擬機器 (VM) 中,因此很難直接存取主機提供的服務。

要解決此問題,請調整連線字串以使用 docker.for.mac.localhost :3306 而不是 127.0.0.1:3306。這個特殊的主機名稱允許 Docker 容器和主機之間的通訊。 修改後的 Go 程式碼應如下所示:此修改應該解決連線問題並啟用您之間的通訊Go應用程式和在主機上執行的MySQL伺服器。

以上是為什麼 Docker 中的 Go 應用無法連接到 Mac 上的 MySQL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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