Laravel 5 PDOException 找不到驱动程序

Posted

技术标签:

【中文标题】Laravel 5 PDOException 找不到驱动程序【英文标题】:Laravel 5 PDOException Could Not Find Driver 【发布时间】:2016-05-16 09:21:59 【问题描述】:

我在使用 Laravel 5 时遇到问题。当我运行“php aritsan migrate”时,我收到了这个错误

**************************************
*     Application In Production!     *
**************************************

Do you really wish to run this command? [y/N] y

[PDOException]
could not find driver

我可以运行应用程序,但是当需要数据库连接时,我得到了这个错误

PDOException in Connector.php line 55:
could not find driver
in Connector.php line 55
at PDO->__construct('mysql:host=localhost;dbname=mydb', 'root', '', array('0', '2', '0', false, false)) in Connector.php line 55
at Connector->createConnection('mysql:host=localhost;dbname=mydb', array('driver' => 'mysql', 'host' => 'localhost', 'database' => 'mydb', 'username' => 'root', 'password' => '', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'name' => 'mysql'), array('0', '2', '0', false, false)) in MySqlConnector.php line 22

如何解决?

【问题讨论】:

在您的服务器上安装 PDO 驱动程序。 对于 Windows 10 (x64) 上的 PHP 7.4,请查看 ***.com/questions/49333044/… 【参考方案1】:

升级发行版后我也发生了同样的事情。

运行 sudo apt-get install php7.0-mysql 为我修复了它。

【讨论】:

不知道为什么这被标记了。这对我来说很好,而接受的答案却没有。 这是第一步,然后根据需要激活 PDO。注意为您正在使用的正确 php 版本安装 mysql 插件,尤其是 7.0 (php -v) 我在用 nginx 替换 apache 后遇到了这个错误。毕竟我重新安装了 php7.0-mysql ,它就像一个魅力。 在我的情况下,我已经安装了它并且它在命令行上工作(使用artisan migrate 命令)但由于某种原因在应用程序中仍然失败。 我需要重启 apache! 我建议先运行php -v看看你运行的是什么版本的PHP,然后安装合适的版本【参考方案2】:

您应该在您的服务器上安装 PDO。 编辑您的 php.ini(查看您的 phpinfo(),“加载的配置文件”行,找到 php.ini 文件路径)。 查找并取消注释以下行(删除 ; 字符):

;extension=pdo_mysql.so

然后,重新启动您的 Apache 服务器。 欲了解更多信息,请read the documentation。

【讨论】:

首先,按照@user657309的回答安装mysql(给定你的php版本,尤其是php7.0) 如果你使用的是php-fpm,除了重启web服务器(nginx/apache)之外,你需要重启它【参考方案3】:

我使用的是 Ubuntu 16.04 和 PHP 5.6.20

在遇到太多问题后,以下步骤为我解决了这个问题:

    通过phpinfo()找到php.ini路径

    取消注释

    extension=php_pdo_mysql.dll
    

    添加这一行

    extension=pdo_mysql.so
    

    然后运行

    sudo apt-get install php-mysql
    

【讨论】:

.dll 文件被 Windows 操作系统使用,应该没有影响。这就是为什么您需要在 Linux 上使用 .so 等效项的原因。 非常感谢。经过几个小时的努力,您的解决方案对我有用。 是的。这适用于最新版本:PHP 7.2.19-0ubuntu0.18.04.1【参考方案4】:

这将取决于您的 php 版本。检查它是否运行:

php -version

现在,根据您当前的版本,运行:

sudo apt-get install php7.2-mysql

【讨论】:

【参考方案5】:

sudo apt-get update

Mysql 数据库

sudo apt-get install php-mysql

对于 PostgreSQL 数据库

sudo apt-get install php-pgsql

那么

php artisan migrate

【讨论】:

【参考方案6】:

我在 Ubuntu 上尝试了以下命令,它对我有用 sudo apt-get install php7.0-mysql

谢谢

【讨论】:

【参考方案7】:

如果你的数据库是 PostgreSQL 并且你有 php7.2 你应该运行以下命令:

sudo apt-get install php7.2-pgsql

php artisan migrate

【讨论】:

欢迎来到 SO!请详细解释您的回答,在comments 部分提问。 sudo 适用于 linux。什么是窗户?【参考方案8】:

对我来说,问题是我不是从运行 php 的容器内部运行迁移命令。扩展名已正确设置在那里,但不在我的主机上。

【讨论】:

这里也一样,我应该从我的 docker shell 运行命令。【参考方案9】:

如果你在ubuntu 20.04上安装了php8,你可以运行这个命令

sudo apt-get install php8.0-mysql

【讨论】:

【参考方案10】:

这对我有用。

sudo apt install php-mysql

它将根据您使用的php版本安装php-mysql

【讨论】:

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

Laravel 5 PDOException 找不到驱动程序

Laravel 5.0 [PDOException] SQLSTATE[HY000]:一般错误:1215 无法添加外键约束

使用 DB_HOST=localhost 和 127.0.0.1 PDOException 运行 Laravel 5 项目

迁移 php artisan laravel 5.2 [PDOException] SQLSTATE[42S01]

无法在 laravel 3 中捕获 PDOException

Laravel:错误 [PDOException]:在 PostgreSQL 中找不到驱动程序?