如何解决新建Symfony项目AbstractPostgreSQLDriver.php第102行找不到驱动报错
报错来源
- 触发数据库连接的根本原因:你执行的
symfony new test --full命令会默认安装Symfony官方推荐的全量组件包,其中包含Doctrine ORM相关套件,框架启动时会自动初始化Doctrine服务,哪怕你没有手动编写数据库逻辑,服务初始化阶段就会尝试连接数据库,因此触发驱动报错。 - 改了.env的MySQL配置仍然提示PostgreSQL驱动错误的原因:Symfony的环境变量存在优先级规则,
.env.local、.env.dev等环境专属配置文件的优先级高于默认.env,如果这些文件中还保留着默认的PostgreSQL连接配置,会优先读取;此外修改.env后没有清理Symfony缓存,旧的配置会被缓存继续生效。
解决方案
分两种场景选择即可:
场景1:项目不需要用到数据库(适配你当前极简项目需求)
直接卸载Doctrine相关组件,从根源上避免数据库初始化逻辑:
执行命令:composer remove doctrine/doctrine-bundle doctrine/doctrine-migrations-bundle doctrine/orm
卸载完成后清理缓存重启服务即可正常访问。
场景2:后续需要使用数据库
按以下步骤操作:
- 先清理Symfony缓存,执行命令:
php bin/console cache:clear - 检查项目根目录下的
.env.local、.env.dev、.env.{当前运行环境}.local文件,删除其中旧的PostgreSQL DATABASE_URL配置,或修改为你需要的MySQL连接地址 - 打开你的PHP配置文件php.ini,去掉
extension=pdo_mysql前面的注释分号,保存后重启PHP - 彻底停止Symfony服务:
symfony server:stop,再重新执行symfony server:start启动服务即可。
内容的提问来源于stack exchange,提问作者Woz9
相关产品推荐
相关产品推荐

