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

Symfony 5提示SQLSTATE[HY000] [2002]连接被拒绝错误如何解决?

Symfony数据库连接拒绝问题解决方案

1. 修正端口配置错误

你当前的.env配置存在核心参数错误:MySQL默认服务端口为3306,5432是PostgreSQL的专属默认端口,你误将MySQL连接的端口写为5432,是触发连接拒绝的直接原因。

将.env文件的数据库配置替换为以下正确格式:

# 注释错误的旧配置
# DATABASE_URL="mysql://root:@127.0.0.1:5432/evergirls?serverVersion=13&charset=utf8"
# 启用MySQL适配配置,serverVersion与你本地安装的MySQL版本保持一致即可
DATABASE_URL="mysql://root:@127.0.0.1:3306/evergirls?serverVersion=5.7&charset=utf8mb4"

如果本地安装的是MySQL 8.x版本,将serverVersion参数值修改为8.0即可,charset建议使用utf8mb4支持表情等全量Unicode字符

2. 验证MySQL服务运行状态

修改配置后先确认本地MySQL服务正常启动:

  • Windows系统可在服务管理器中查找MySQL服务确认运行状态
  • Linux环境运行命令 systemctl status mysql 验证服务状态
  • macOS通过Homebrew安装的MySQL可运行 brew services list 查看运行状态
  • 也可直接运行命令 mysql -u root -h 127.0.0.1 -P 3306 测试直连,能正常进入MySQL命令行则服务无异常

3. Docker环境适配调整

如果你使用Docker部署Symfony项目,需要额外调整配置:

  • 先确认docker-compose.yml中定义的MySQL服务名称,默认通常为mysql
  • 将.env配置中的host部分替换为服务名:DATABASE_URL="mysql://root:@mysql:3306/evergirls?serverVersion=5.7&charset=utf8mb4"
  • 数据库创建命令需要在PHP容器内部执行,不能直接在物理机环境运行

4. 清除配置缓存

修改配置后需清除Symfony旧缓存,避免旧配置依然生效:

php bin/console cache:clear

缓存清除完成后再执行数据库创建命令即可:

php bin/console doctrine:database:create

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 06:57:01