Symfony 5异常找不到驱动程序

Posted

技术标签:

【中文标题】Symfony 5异常找不到驱动程序【英文标题】:Symfony 5 exception Could not find driver 【发布时间】:2021-05-02 20:47:37 【问题描述】:

我正在使用 Symfony 制作我的第一个应用程序,当我设置我的数据库时(不管是 postgresql 还是 mysql)。

我有三次“找不到驱动程序”的错误。 PDOConnection.php 第 38 行中的一个。

Exception.php 第 18 行中的其他内容。

AbstractMySQLDriver.php 第 128 行中的最后一个。

我做了什么:我检查了 php 路径我还检查了所有的扩展。我检查我是否正确填写了 .env 并检查了这些文件夹。

PHP 版本:7.4

和 docker 容器中的 mysql:mysql:5.7。

我真的不知道现在该怎么办

更新:

问题(对我来说)是命令php bin/console doctrine:database:create

如果你有同样的问题,试试symfony doctrine:database:create

【问题讨论】:

你installed PDO PHP 扩展了吗? @greeflas 在 cmd 我做了 php -r "print_r(get_loaded_extensions());"我有第 21 行 [21] => PDO。是对的吗?还是另一个? 我还签入了 C:\php\ext 并且我有 php_pdo_mysql.dll 所以我想是的我有它 您需要 PDO、pdo_mysql 和 mysqli 扩展。仔细检查您的 get_loaded_extensions 输出。我怀疑你缺少 mysqli 扩展。 我在 C:\php\ext 中有扩展名 php_mysqli.dll 但你可能得到了打印结果:gyazo.com/99c417efa735bd515ccc0575ba84e2d1 【参考方案1】:

你使用 .env 文件吗?我有同样的问题,在禁用/启用 pdo 一天后没有任何效果,我发现 symfony 自动在我的 .env 文件中添加一行:

DATABASE_URL=postgresql://db_user:db_password@127.0.0.1:5432/db_name?serverVersion=11&charset=utf8

这使我的数据库 url 错误并且由于 postgresql 而不是 mysql 而找不到 pdo fire

【讨论】:

【参考方案2】:

显然您使用 Docker,但在您的问题中您提到了 Windows cmd。我想,您在主机系统中检查 PDO 扩展,而不是在容器中。您需要登录到您的 Docker PHP 容器并在那里进行检查。在 Windows 桌面版的 Docker 中,每个容器附近都有一个按钮来打开命令行界面。你也可以使用命令:

docker exec -it <here goes your container name>

要找出你的容器名称是什么,你可以使用命令

docker ps

更新:

要在 Docker 中启动您的项目,在 Windows 主机本身上运行,您可以使用 Symfony 提供的非常有用的迷你服务器。在您的项目目录中运行此命令:

symfony serve

它将启动本地服务器,默认地址为https://127.0.0.1:8000/。

但是,请记住,如果您的项目需要数据库,您还需要在主机系统上安装 MySQL Server for Windows。

【讨论】:

我使用了 docker,因为他们在一篇文章中说我的数据库需要它来进行配置,但我不知道 docker 是如何工作的,那么没有 docker 我怎么能做到这一点?我有一个 mysql 容器和基本的“入门”容器 @JeanBane 更新了我的答案。但是,我个人建议您与 Docker 相处融洽。这种方式更合适、更容易且有文档记录。 我使用 symfony server:start 启动我的服务器,所以我猜 symfony serve 是一个别名。但我会试试你的更新。 (我迷失了 docker 所以我按照博客 Auth0 提供的说明进行操作)。感谢您的解决方案,如果此解决方案也不起作用,我会给您反馈 我这样做真的很奇怪。 symfony 控制台原则:数据库:创建并且没有错误我有以下消息“为名为默认的连接创建了数据库'symfony'”。看起来不错吧? @JeanBane 我想是的! :D

以上是关于Symfony 5异常找不到驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

Symfony:驱动程序发生异常:找不到驱动程序

Symfony3 演示项目不起作用:PDO 异常找不到驱动程序(sqlite 案例)

Symfony:在 SecurityContext 中找不到用于防火墙后路由的令牌

Symfony2:学说“找不到驱动程序”

在 Heroku 上部署 Symfony5/php7 应用程序时找不到模板“base.html.twig”错误消息

PHP 7.0 上的 Laravel 5.4:PDO 异常 - 找不到驱动程序 (MySQL)