Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5 PDO异常找不到驱动程序_Php_Mysql_Laravel_Laravel 5 - Fatal编程技术网

Php Laravel 5 PDO异常找不到驱动程序

Php Laravel 5 PDO异常找不到驱动程序,php,mysql,laravel,laravel-5,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 fin

我在使用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
我可以运行应用程序,但是当需要数据库连接时,我遇到了这个错误

**************************************
*     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。 编辑php.ini(查看
phpinfo()
,“加载的配置文件”行,找到php.ini文件路径)。 查找并取消注释以下行(删除
字符):

然后,重新启动Apache服务器。
有关更多信息,请。

升级发行版后,我也遇到了同样的情况


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

我使用的是Ubuntu 16.04和PHP5.6.20

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

  • 通过
    phpinfo()

  • 取消注释

    extension=php_pdo_mysql.dll
    
  • 添加这一行

    extension=pdo_mysql.so
    
  • 然后跑

    sudo apt-get install php-mysql
    

  • 我在Ubuntu上尝试了以下命令,它对我有效
    sudo apt get安装php7.0-mysql


    谢谢

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

    php -version
    
    现在,根据当前版本,运行:

    sudo apt-get install php7.2-mysql
    

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

    sudo apt get安装php7.2-pgsql
    

    php artisan迁移
    sudo-apt-get-update

    用于Mysql数据库

    sudo apt get安装php mysql

    用于PostgreSQL数据库

    sudo apt get install php pgsql

    然后


    php-artisan-migrate

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

    在您的服务器上安装PDO驱动程序。对于Windows10(x64)上的PHP7.4,请看一看,不确定为什么会将其标记下来。这对我来说很好,而接受的答案却没有。这是第一步,如果需要,激活PDO。请注意为您正在使用的正确php版本安装mysql插件,特别是在用nginx替换apache后遇到的7.0(php-v)版本。毕竟,我重新安装了php7.0-mysql,它工作起来很有魅力。在我的情况下,我已经安装了它,它正在为命令行工作(使用
    artisan migrate
    命令),但由于某种原因,它在应用程序中仍然失败。我需要重新启动apache!我建议首先运行
    php-v
    查看您正在运行的php的版本,然后安装相应的版本。首先,按照@user657309的答案安装mysql(给定您的php版本,尤其是php7.0),如果您使用的是php fpm,除了重新启动web服务器(nginx/apache)之外,还需要重新启动它
    .dll
    文件由Windows操作系统使用,不应产生任何影响。这就是为什么您需要与Linux相当的
    .so
    。非常感谢。经过几个小时的努力,你的解决方案对我有效。这对最新版本有效:PHP7.2.19-0ubuntu0.18.04.1欢迎使用SO!请详细解释您的amswer,并在
    评论
    部分提问。sudo适用于linux。什么是windows?这里也是一样,我应该从docker shell运行命令。