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

Docker Compose中Symfony连接MySQL容器报Connection Refused问题排查

问题分析与解决

你遇到的连接拒绝问题核心原因很明确:Symfony配置里的数据库端口用错了。

为什么会这样?

在Docker Compose的网络环境中,容器之间的通信是直接使用容器内部的端口,而非映射到主机的端口。你的docker-compose.yml里把MySQL容器的3306端口映射到了主机的3200端口——这是给外部工具(比如MySQL Workbench)连接用的。但Symfony运行在php-fpm容器里,和mysql容器属于同一个Docker网络,应该直接使用MySQL容器内部的3306端口,而不是3200。

修正步骤

修改你的Symfony配置参数,把database_port从3200改成3306:

parameters:
  database_driver: pdo_mysql
  database_host: mysql
  database_port: 3306  # 这里改为容器内部端口3306
  database_name: my_database
  database_user: admin
  database_password: '000000'

额外检查点(可选)

如果修正后仍有问题,可以再确认这几点:

  • 确保docker-compose.yml中mysql服务的名称和Symfony配置的database_host完全一致(这里都是mysql,没问题)
  • 查看MySQL容器的启动日志,确认没有初始化错误:执行docker-compose logs mysql即可查看
  • 虽然配置了depends_on,但MySQL容器启动完成后通常需要几秒才能接受连接,你可以考虑添加healthcheck配置,确保php-fpm在MySQL就绪后再启动

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:23:48