【问题标题】:PDOException in my Laravel application, despite having pdo_mysql installed尽管安装了 pdo_mysql,但我的 Laravel 应用程序中出现 PDOException
【发布时间】:2018-06-11 17:51:21
【问题描述】:

我试图在我的服务器上运行一个新的 Laravel 应用程序,但我收到以下错误:

QueryException (SQL) 找不到驱动程序 (SQL: select * from settings 限制 1)

使用调试栏我可以看到错误是针对 PDO: LOG.error:

PDOException: 找不到驱动程序 /home/mysite.com/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:

没有意义的是我实际上已经安装了 PDO,我知道这一点是因为我运行了第一个 php artisan migrate,它在我的 MYSQL DB 中创建了所有表。

我已经运行 php -m | grep mysql 来验证我有哪些与 mysql 相关的 PHP 扩展:

$ php -m | grep mysql
mysqli
mysqlnd
pdo_mysql

我应该注意 PHP 可以使用 MySQL,因为我有一个 Wordpress 博客可以在同一台服务器上运行。

我已经尝试清除缓存和更新作曲家包,我也完全删除了doctrine/dbal并重新安装。

更新:如果我删除包 doctrine/dbal 并清除缓存,我仍然会收到有关 PDOExceptions 的错误:

Illuminate\Database\QueryException 找不到驱动程序 /home/mysite.com/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php#68

【问题讨论】:

  • 你安装mysql驱动了吗?
  • 是的,它已成功运行迁移,它只是在我尝试加载它时显示此页面的站点。
  • 这是一个配置问题,不只是 1 个 php 配置...... cli 配置听起来不错,但另一个配置缺少驱动程序
  • 您能详细说明缺少什么配置吗?
  • 愚蠢的问题,你在哪里使用了学说/dbal?是强制吗?如果你使用普通的 laravel,我相信你不会需要它。如果迁移有效,则首先责怪教义/dbal 而不是 laravel。

标签: php laravel dbal


【解决方案1】:

试试这个:

composer update

composer require doctrine/dbal

您似乎缺少依赖项

注意:

您可能需要在 php.ini 文件中注释掉以下内容。

;extension=pdo_mysql.so

stackoverflow.com/a/42561002/2109233 source

【讨论】:

  • 您是否也重新启动了 Web 服务器(Apache/Nginx)?
  • 另外你确定你的 .env 文件中有 DB_CONNECTION= 'mysql' 吗?
  • 是的,正如我提到的php artisan migrate 有效,我相信这也使用了.env 设置
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-28
  • 1970-01-01
  • 1970-01-01
  • 2018-11-23
  • 2017-07-29
  • 2019-11-01
  • 2022-12-24
相关资源
最近更新 更多