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】:如果你在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
在遇到太多问题后,以下步骤为我解决了这个问题:
通过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【参考方案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)之外,你需要重启它以上是关于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]