当前位置: 首页 > 知识库问答 >
问题:

PHP7.0上的Laravel5.4:PDO异常-找不到驱动程序(MySQL)

公孙盛
2023-03-14

我在我的Ubuntu14.04上有一个Laravel5.4项目(带有Plesk12.5.30的VPS)。创建数据库并使用所需信息设置.env文件后,我运行了php artisan migrate,并引发异常:

无法找到驱动程序(SQL:选择*frominformation_schema.tables其中table_schema=pmaramaldb和table_name=迁移)

[PDO异常]
找不到驱动程序

My.env文件具有:

DB_CONNECTION=mysql

DB_HOST=127.0.0.1

DB_PORT=3306

数据库=pmaramaldb

DB_USERNAME用户

DB_PASSWORD=密码

我已经按照大多数指南解决了这个错误,但没有任何积极的结果:

启用扩展解决方案:

PDO已启用

php.ini文件是自动生成的,我想这是由Plesk制作的。文件开头写着:

;注意!

;不要修改这个文件,因为它是自动生成的,
;所以在下一次生成文件时,所有的更改都将丢失。

所以我还是试过了。在那之后,我重启了Apache,然后又试了一次...没有工作。

安装php7.0-mysql解决方案:

我还尝试安装MySQL,以防出现以下情况:

user@server:/var/www/vhosts$sudo apt get install php7.0-mysql

莱恩多·利斯塔·德·帕克特斯。。。赫乔

克雷昂多尔博德依附酒店

Leyendo la información de estado。。。赫乔

php7.0-mysql已经是最新版本了。

0实现,0 se instalarán,0对消除和67没有实现。

**SQL Lite安装解决方案:**

我还尝试了如下问题链接:sudo apt-get安装php5-sqlite,结果是:

user@server:/var/www/vhosts/system/maramal.io/etc$sudo-apt-get-install php5-sqlite

莱恩多·利斯塔·德·帕克特斯。。。赫乔

克雷昂多尔博德依附酒店

Leyendo la información de estado。。。赫乔

php5 sqlite已经是最新版本了。

0实现,0 se instalarán,0对消除和67没有实现。

作曲家转储-自动加载解决方案:

它也没起作用。我尝试了作曲家转储-自动加载,但它不起作用。

运行命令php-i后:

PDO

PDO支持=

PDO驱动程序=

...

PHP版本

嗯,我不确定这是否与错误有关,但是运行php-v显示的版本是:

user@server:~/path$php-v

PHP 5.6.30-1 deb.sury.org~trusty 1(cli)

版权所有(c)1997-2016 PHP集团

Zend Engine v2.6.0,版权(c)1998-2016 Zend Technologies
和Zend OPcache v7.0.6-dev,版权(c)1999-2016,由Zend Technologies提供

共有3个答案

郎恺
2023-03-14

Apache使用的PHP与链接到命令行的PHP之间存在冲突。(更常见的情况是应该诚实)。

通常要做的是:

which php

这告诉你哪个php将在命令行中运行时被执行。例如/usr/bin/php

mv /usr/bin/php /usr/bin/php.old

然后将正确的PHP版本链接或复制到可执行路径:

ln -s /path/to/php/bin/php /usr/bin/php

或者下面的方法也可以。

cp /path/to/php/bin/php /usr/bin/php

如果您希望能够手动安装mod,还建议:

ln -s /path/to/php/bin/phpize /usr/bin/phpize
ln -s /path/to/php/bin/php-config /usr/bin/php-config

这样,您的CLI将匹配您的Web服务器。

更新:

如果如这个答案中所述,如果你使用Ubuntu和多个替代的PHP安装,你可以这样做:

sudo update-alternatives --set php /usr/bin/php<version>
sudo update-alternatives --set phar /usr/bin/phar<version>
sudo update-alternatives --set phar.phar /usr/bin/phar.phar<version> 
sudo update-alternatives --set phpize /usr/bin/phpize<version> 
sudo update-alternatives --set php-config /usr/bin/php-config<version>
方心思
2023-03-14

同样的问题,ubuntu 17.10,Laravel 5.5。

#安装php7.1-pdo php7.1-mysql

一个很好的快速修复,希望这有帮助

孟开宇
2023-03-14

作为替代解决方案,请确保您已经安装了php7-mysql

尝试运行下面的命令

sudo apt install php7.0-mysql

或者,如果要自动安装当前版本

sudo apt install php-mysql
 类似资料:
  • 问题内容: 我在Ubuntu 14.04(带有Plesk 12.5.30的VPS)上有一个Laravel 5.4项目。创建数据库并使用所需信息设置 .env 文件后,我运行了并且引发了异常: [Illuminate \ Database \ QueryException] 找不到驱动程序(SQL:从information_schema.tables中选择*,其中table_schema = pma

  • 问题内容: 我在安装laravel时遇到了不好的经验。但是,我能够这样做,并进入了新的高度。我使用生成器并创建了迁移。但是当我键入最后一条命令时 它引发PDOException-找不到驱动程序。 那是我在config / database.php中的配置。 我尝试在stackoverflow和laravel论坛上进行搜索,人们认为这是PDO问题,而不是artisan或php的问题-我遵循这些建议,

  • 如果我使用的是maven插件,并且通过它一切都很好,但是我怎么能在没有Maven插件的情况下运行它,使用运行配置并从那里设置Tomcat。如果我做一些,出现以下错误: 使用插件一切工作:Maven项目 - 但是,当我尝试通过不同的运行配置运行同一个项目时,问题出现了,如下所示: 错误来自标记行: 问题可能与运行配置有关。

  • 我有selenium 2.53.1.jar、platform Windows、Java-1.8、chrome=52.0、chrome-driver.exe-2.23。 在Jenkins上进行夜间观察测试时,我看到了以下消息。 org.openqa.selenium.WebDriverException:未知错误:无法发现打开的页面(驱动信息:chromeDrive=2.23.409699 (49b

  • 问题内容: 嗨,我收到尝试通过php文件连接到sqlite时 找不到驱动程序 错误的消息。我已将权限设置为777 … PHP 5.2.16版,已安装模块。任何找不到驱动程序的原因,php.ini都显示了已安装的扩展名pdo.so和pdo_mysql.so。 PDO 已启用PDO支持的PDO驱动程序mysql pdo_mysql 适用于MySQL的PDO驱动程序,客户端库版本5.0.92 问题答案:

  • 问题内容: 输出 >无法连接到数据库服务器java.lang.ClassNotFoundException 问题答案: 看来您应该将MySQL驱动程序jar放入 类路径中 。