当尝试从 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中文网其他相关文章!