首页  >  文章  >  后端开发  >  当遇到“连接被拒绝”时,如何从 Docker 中的 Go 应用程序连接到 MySQL 服务器?

当遇到“连接被拒绝”时,如何从 Docker 中的 Go 应用程序连接到 MySQL 服务器?

Linda Hamilton
Linda Hamilton原创
2024-10-30 05:33:28465浏览

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn