Symfony 5使用Doctrine创建MySQL数据库报SQLSTATE[HY000] [2002]连接错误
你配置里存在3处明显错误,逐一修正即可解决问题:
错误1:数据库端口配置错误
PostgreSQL默认服务端口为5432,而MySQL默认监听端口为3306,你仅修改了连接协议为mysql,未同步修改端口,导致请求尝试访问MySQL不存在的5432端口,触发连接拒绝报错。
错误2:数据库版本参数不匹配
你保留了原PostgreSQL配置的serverVersion=13参数,而MySQL不存在13的大版本号,该参数需要和你本地安装的MySQL实际版本保持一致。
错误3:主机地址修改不符合部署场景
将主机改为mysql的方案仅适用于Docker容器编排场景,且要求你的Docker Compose中MySQL服务的名称定义为mysql。如果你是本地直接安装运行的MySQL,无需修改主机地址,保持127.0.0.1即可,修改为mysql后本地无法解析该主机名,自然触发主机未知报错。
正确配置参考(以本地安装MySQL 5.7、root用户密码为d为例)
DATABASE_URL="mysql://root:d@127.0.0.1:3306/mywebsite?serverVersion=5.7&charset=utf8mb4"
额外检查项
- 确认本地MySQL服务已正常启动
- 确认配置中的数据库密码和你实际MySQL root用户的密码一致,若root无密码则密码段留空,写为
root:@ - 若你使用的是MySQL 8.0,将
serverVersion参数的值改为8.0即可
内容的提问来源于stack exchange,提问作者agone07
相关产品推荐
相关产品推荐

