You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Symfony连接Docker MySQL报错:getaddrinfo无法解析db主机

解决Symfony连接Docker MySQL时的getaddrinfo for db failed错误

你遇到的问题核心是宿主机无法解析Docker内部的db服务名:

  • phpMyAdmin能正常连接,是因为它和db容器处于同一个Docker网络中,Docker的内部DNS可以解析db这个服务名。
  • 但你在宿主机直接执行Symfony的迁移命令时,宿主机的系统DNS不知道db对应的IP,所以会抛出getaddrinfo错误。

方法一:修改数据库连接地址为宿主机端口

你的MySQL容器已经把3306端口映射到了宿主机的6033,直接修改.env里的DATABASE_URL:

DATABASE_URL="mysql://root:weply@127.0.0.1:6033/weply"

修改后在宿主机重新执行迁移命令即可,宿主机通过本地映射的6033端口访问MySQL容器。

方法二:在Docker容器内执行Symfony命令

如果你的Symfony项目本身也运行在Docker容器中(比如配置了php服务),直接进入容器内部执行命令:

docker-compose exec php php bin/console make:migration

(将命令中的php替换为你实际的Symfony容器服务名)
这种方式下,Symfony容器和db容器处于同一Docker网络,能正常解析db服务名,无需修改连接地址。

内容的提问来源于stack exchange,提问作者Toma Tomov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 06:05:03