Laravel 5 PDOException无法找到驱动程序

ZZZ*_*ZZZ 27 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
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

怎么解决?

小智 68

升级发行版后,同样的事情发生在我身上.

跑步sudo apt-get install php7.0-mysql为我修好了.

  • 不知道为什么这个被标记下来.这对我来说很好,而接受的答案却没有. (3认同)
  • 我建议先运行php -v以查看您正在运行的PHP版本,然后安装适当的版本。 (3认同)

tom*_*hap 43

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

;extension=pdo_mysql.so
Run Code Online (Sandbox Code Playgroud)

然后,重新启动Apache服务器.有关更多信息,请阅读文档.


Ani*_*pta 21

我使用的是Ubuntu 16.04和PHP 5.6.20

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

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

  2. 取消注释

    extension=php_pdo_mysql.dll
    
    Run Code Online (Sandbox Code Playgroud)
  3. 添加此行

    extension=pdo_mysql.so
    
    Run Code Online (Sandbox Code Playgroud)
  4. 然后运行

    sudo apt-get install php-mysql
    
    Run Code Online (Sandbox Code Playgroud)


Muh*_*man 11

sudo apt-get update

对于 Mysql 数据库

sudo apt-get install php-mysql

对于 PostgreSQL 数据库

sudo apt-get install php-pgsql

然后

php artisan migrate


小智 7

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

谢谢


小智 6

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

php -version
Run Code Online (Sandbox Code Playgroud)

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

sudo apt-get install php7.2-mysql
Run Code Online (Sandbox Code Playgroud)


小智 6

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

sudo apt-get install php7.2-pgsql
Run Code Online (Sandbox Code Playgroud)

php artisan migrate
Run Code Online (Sandbox Code Playgroud)


Had*_*azi 5

根据您的数据库类型从 php.ini 文件中取消注释数据库行

对于MYSQL

;extension=pdo_mysql
Run Code Online (Sandbox Code Playgroud)

对于 Postgres

;extension=pgsql
Run Code Online (Sandbox Code Playgroud)