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

Docker环境下Symfony连接数据库报错:Connection refused

Docker环境下Symfony连数据库报Connection refused的解决方案

最关键的问题:数据库主机配置错误

你的Symfony .env 里的 DB_HOST=127.0.0.1 配置不符合Docker容器间通信逻辑,分两种场景修正:

场景1:Symfony项目在Docker容器内运行

Docker容器内的127.0.0.1指向容器自身,而数据库是独立的db服务容器,需将主机替换为Docker Compose中定义的服务名:

DB_HOST=db
DB_PORT=3306

同时确保Symfony的容器也加入dev网络(在docker-compose.yml的Symfony服务配置中添加networks: - dev),否则容器间无法通过服务名通信。

场景2:Symfony项目在宿主机运行

这种情况下127.0.0.1是正确的,但需确认以下几点:

  • 数据库容器是否正常启动:执行docker-compose ps查看db服务状态是否为Up
  • 端口映射是否生效:执行netstat -tulpn | grep 3306确认宿主机3306端口被数据库容器占用
  • 数据库是否完成初始化:刚启动的MariaDB容器需要几秒时间完成初始化,不要立即尝试连接

额外检查项

  • 核对.env中的DB_USER、DB_PASSWORD、DB_NAME与docker-compose.yml里的数据库环境变量完全一致
  • 查看数据库日志排查问题:执行docker-compose logs db,检查是否有启动失败、权限错误等信息
  • 修改.env后清除Symfony缓存:php bin/console cache:clear --env=dev

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 14:41:26