在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中文網其他相關文章!