【问题标题】:Laravel 5 PDOException Could Not Find DriverLaravel 5 PDOException 找不到驱动程序
【发布时间】: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

如何解决?

【问题讨论】:

标签: php mysql laravel laravel-5


【解决方案1】:

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

sudo apt-get install php8.0-mysql

【讨论】:

    【解决方案2】:

    sudo apt-get update

    Mysql 数据库

    sudo apt-get install php-mysql

    对于 PostgreSQL 数据库

    sudo apt-get install php-pgsql

    那么

    php artisan migrate

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 这里也一样,我应该从我的 docker shell 运行命令。
      【解决方案4】:

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

      sudo apt-get install php7.2-pgsql
      

      php artisan migrate
      

      【讨论】:

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

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

      php -version
      

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

      sudo apt-get install php7.2-mysql
      

      【讨论】:

        【解决方案6】:

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

        谢谢

        【讨论】:

          【解决方案7】:

          我使用的是 Ubuntu 16.04 和 PHP 5.6.20

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

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

          2. 取消注释

            extension=php_pdo_mysql.dll
            
          3. 添加这一行

            extension=pdo_mysql.so
            
          4. 然后运行

            sudo apt-get install php-mysql
            

          【讨论】:

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

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

          运行 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,然后安装合适的版本
          【解决方案9】:

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

          ;extension=pdo_mysql.so
          

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

          【讨论】:

          • 首先,按照@user657309的回答安装mysql(给定你的php版本,尤其是php7.0)
          • 如果你使用的是php-fpm,除了重启web服务器(nginx/apache)之外,你需要重启它
          猜你喜欢
          • 1970-01-01
          • 2017-05-29
          • 2017-02-20
          • 2015-04-08
          • 2016-09-03
          • 2022-01-23
          相关资源
          最近更新 更多