首页 > 后端开发 > Golang > 正文

如何解决在 Docker 中连接到 MySQL 服务器时出现'拨号 tcp 127.0.0.1:3306: connect: 连接被拒绝”错误?

DDD
发布: 2024-10-28 15:59:01
原创
336 人浏览过

How to Resolve

未解决的通过 Docker 到 MySQL 服务器的拨号 TCP 问题

无法与在 Docker 中运行的 MySQL 服务器建立连接?你并不孤单。让我们深入研究这个常见问题并探讨潜在的解决方案。

问题:

您遇到“拨号 tcp 127.0.0.1:3306: connect: 连接被拒绝”尝试使用 Go 从 Docker 容器内连接到 MySQL 数据库时出错。您的 MySQL 服务器在 localhost:3306 上正常运行,但与您的 Go 应用程序的连接失败。

解决方案:

问题的症结在于 Docker 的隔离。默认情况下,Docker 容器运行在与主机系统隔离的网络环境中。这种分离可以防止容器直接访问主机提供的服务,包括在本地主机上运行的 MySQL 服务器。

要规避此限制,您可以修改连接字符串以使用以下命令指定主机的 IP 地址:特殊主机名 docker.for.mac.localhost。修改后的连接字符串应该类似于这样:

db, err = sql.Open("mysql", dbUser+":"+dbPassword+"@tcp(docker.for.mac.localhost:3306)/"+dbName)
登录后复制

通过将主机名修改为 docker.for.mac.localhost,您的 Docker 容器可以通过网桥与您主机上运行的 MySQL 服务器建立连接.

附加说明:

有关进一步的指导和故障排除提示,请参阅有关网络的 Docker 文档。请记住,此解决方法可能需要额外的网络配置,具体取决于您的具体设置。

以上是如何解决在 Docker 中连接到 MySQL 服务器时出现'拨号 tcp 127.0.0.1:3306: connect: 连接被拒绝”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!