Php Laravel 5 PDO异常找不到驱动程序
我在使用Laravel 5时遇到问题。当我运行“php-aritsan-migrate”时,我遇到了这个错误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
**************************************
* 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运行命令。