Laravel 5 PDOException无法找到驱动程序

时间:2016-02-06 11:22:50

标签: php mysql laravel laravel-5

我使用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

如何解决?

8 个答案:

答案 0 :(得分:54)

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

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

答案 1 :(得分:36)

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

;extension=pdo_mysql.so

然后,重新启动Apache服务器。 有关详情,请read the documentation

答案 2 :(得分:18)

我使用的是Ubuntu 16.04和PHP 5.6.20

经过太多问题后,以下步骤为我解决了这个问题:

  1. 通过php.ini

  2. 找到phpinfo()路径
  3. 取消注释

    extension=php_pdo_mysql.dll
    
  4. 添加此行

    extension=pdo_mysql.so
    
  5. 然后运行

    sudo apt-get install php-mysql
    

答案 3 :(得分:8)

sudo apt-get update

对于Mysql数据库

sudo apt-get install php-mysql

对于PostgreSQL数据库

sudo apt-get install php-pgsql

php artisan migrate

答案 4 :(得分:6)

我在Ubuntu上尝试了以下命令,它为我工作 sudo apt-get install php7.0-mysql

由于

答案 5 :(得分:3)

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

php -version

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

sudo apt-get install php7.2-mysql

答案 6 :(得分:1)

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

答案 7 :(得分:0)

如果dabase是postgres,并且如果有php7.2

sudo apt-get安装php7.2-pgsql 和 php artisan migration