PHP的工匠迁移投掷[PDO异常]找不到驱动程序 - 使用Laravel

问题描述 投票:33回答:24

我有一个坏的经验,同时安装laravel。但是,我能够做到这一点,并移动到一个新的水平。我用的发电机,创造了我的迁移。但是,当我输入一个命令

php artisan migrate

它抛出一个PDOException - 找不到驱动程序。

       'mysql' => array(
            'driver'    => 'mysql',
            'host'      => 'localhost',
            'unix_socket'   => '/Applications/MAMP/tmp/mysql/mysql.sock',
            'database'  => 'database',
            'username'  => 'root',
            'password'  => '',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),

这是我在配置/ database.php中配置。

我试图寻找关于计算器和laravel论坛和人认为,这是PDO问题,而不是工匠的或PHP的 - 我喜欢跟着加入这些建议

extension=pgsql.so
extension=pdo_pgsql.so

在php.ini

没有阳性结果。它总是说[PDOException]could not find driver.

是否有人可以帮助解决这个。

环境,我使用:苹果,laravel 4,MAMP PRO使用PHP 5.4.4

php mysql pdo laravel driver
24个回答
52
投票

您可以使用

sudo apt-get install php7-mysql

要么

sudo apt-get install php5-mysql

要么

sudo apt-get install php-mysql

这为我工作。


2
投票

Laravel测试使用SQLite需要PHP PDO sqlite的驱动程序

为Ubuntu 14.04

sudo apt-get install php5-sqlite
sudo service apache2 restart

在Ubuntu 16.04没有php5-sqlite

sudo apt-get install php7.0-sqlite
sudo service apache2 restart

2
投票

您必须在我的情况下,可以安装最新版本的php mysql的我安装php7.1-mysql

尝试这个

sudo apt-get install php7.1-mysql

我使用的是最新版本的laravel


1
投票

我使用Ubuntu 14.04

下面的命令解决了这个问题对我来说。

sudo易于得到安装PHP,MySQL的

就我而言,我的更新版本的PHP 5.5.9,从7.0.8到后,我收到此错误包括其他两个错误。

错误:

  1. laravel /框架v5.2.14需要EXT-MBSTRING * - >请求的PHP扩展mbstring的从系统中丢失。
  2. PHPUnit的/ 69的4822的PHPUnit需要EXT-DOM * - >请求的PHP扩展DOM是从系统中丢失。
  3. [PDOException] 找不到驱动程序

解决方案:

我安装了这个包,我的问题都没有了。

命令和apt-get安装PHP-MBSTRING

sudo易于得到安装PHP的XML

sudo易于得到安装PHP,MySQL的


1
投票

我曾在Debian这个问题。问题是,我用的是dotdeb存储库最近的PHP包。出于某种原因,它的PHP CLI更新到7.0,而Web PHP程序仍然PHP的5.6。我用this answer到PHP命令行二进制文件链接到5.6版本,就像这样:

$ sudo ln -sfn /usr/bin/php5 /etc/alternatives/php

1
投票

这个曾与我(对的pgsql:使用而不是“MySQL的” pgsql的“)

第1步)

sudo apt-get install php-mysql

第2步)

php artisan config:clear

步骤3)

php artisan config:cache

第四步) 然后重新启动服务器,然后再重新生成密钥并进行迁移,对其做


1
投票

我得到这个错误的PostgreSQL和解决的办法是:

sudo apt-get install php7.1-pgsql

你只需要使用安装了PHP的版本,我的是7.1。这已固定的PostgreSQL的问题。


1
投票

首先检查你的php版本是这样的:

php -v

你得到的版本号,例如后我得到7.1再安装这样的

sudo apt-get install  php7.1-sqlite     //for laravel testing with sqlite
sudo apt-get install  php-mysql         //for default mysql
sudo apt-get install  php7.1-mysql      //for version based mysql 
sudo apt-get install  php7.1-common     //for other necessary package for php

而需要重新启动的Apache2

sudo service apache2 restart

0
投票

对于未来的搜索。在FreeBSD尝试下

pkg_info | grep php5-pdo_mysql

如果看到空行的回报做到以下几点:

cd /usr/ports/databases/php5-pdo_mysql

和做安装

make install clean

然后只需重新启动你的apache和你做

例如sudo /usr/local/etc/rc.d/apache22 restart


0
投票

通过这个命令安装它

sudo apt-get install php5-gd

这为我工作。


0
投票

在我的情况我不知道,由Apache的运行PHP是从一个由CLI运行不同。如果在httpd.conf配置过程中指定一个PHP模块,不是默认的你的命令行界面使用可能出现这种情况。


19
投票

这为我工作:

sudo apt-get install php5-sqlite

这对于PHP5安装sqlite的,然后我又跑了PHP的工匠migrate命令和完美。


0
投票

我发现这个错误的妥善解决!要么你没有安装任何数据库或在此文件中的config / database.php中默认的数据库设置为一些像这样的其他数据库

'default' => 'sqlite',
'default' => env('DB_CONNECTION', 'sqlite'), //laravel 5.2

改变你已经安装到一个默认或安装的被制作成默认该数据库!我已经安装了MySQL和PHP工匠迁移工作后,我改变了这行这样的:

'default' => 'mysql',
'default' => env('DB_CONNECTION', 'mysql'), //laravel5.2

0
投票

我也得到同样的错误 - >“[PDOException]找不到驱动程序”

我意识到PHP指着到/ usr / bin中/ PHP的,而不是LAMPP的/ opt / LAMPP /斌/ PHP的,所以我简单地创建和别名

又名PHP = “/选择/ LAMPP /斌/ PHP的”

也不得不做出更新到.ENV文件,以确保数据库访问权限进行了更新。

你猜怎么着,它的工作!


0
投票

如果您正在使用Laravel 5.x的,错误是试图修改列的属性,则可能是错误来自缺少的先决条件。

尝试这个:

 composer require doctrine/dbal

然后尝试运行您的迁移。

从这里:https://laravel.com/docs/master/migrations#modifying-columns


0
投票

刚刚更换:;延长= PDO_MYSQL分机= PDO_MYSQL在php.ini文件。


0
投票

如果您使用的是基于拱系统,如在manjaro

只是使用

sudo pacman -S php-sqlite

重新启动你的httpd

systemctl restart httpd

0
投票

对于发现这个职位窗口10和WAMP的那些用户,我有一个solution.Please go visit this link。它的工作对我来说,这是很难得的解决办法,但我希望这可能是帮助别人的未来。


17
投票

您需要专门启用PDO_MYSQL插件。假设你使用的是标准的PHP安装,那么通常你只需要添加到您的php.ini文件:

extension=pdo_mysql.so

您需要确保该文件的扩展名目录中存在,但。

添加pdo_pgsql.so没有帮助,因为这是一个针对PostgreSQL。

此外,您应该确保重新启动Web服务器所做的更改到PHP ini文件后,因为更改可能不会反映,否则。


7
投票

遇到同样的问题,在这里,和原来这是因为PHP在命令行中使用来自浏览器的版本不同php.ini文件,这就是为什么它看起来像它的正确加载扩展,当你在浏览器中查看phpinfo()

按照this answer,你只需要运行:

php --ini

在命令行中,它会告诉你的路径,当前加载php.ini(可能实际上位于同一地点你经常php-cli.ini文件php.ini文件)。

一旦你发现,你想(在这种情况下为MySQL)的PDO扩展修改:

extension=pdo_mysql.so

或者,对于那些使用Windows某种WAMP服务器的其他用户,它可能看起来像这个:

extension=php_pdo_mysql.dll

6
投票

我想你错过了PHP5 MySQL驱动程序。下面执行命令:

sudo apt-get install php5-mysql
/etc/init.d/php5-fpm restart

4
投票

也请检查您的Laravel .env文件。确保DB_CONNECTION=mysql,否则将无法使用MySQL。它试图加载别的东西。


3
投票

您缺少PDO驱动程序。

首先安装驱动程序

Ubuntu的:对于MySQL数据库。

命令和apt-get安装php5.6 MySQL的/ php7.2 MySQL的

您也可以搜索其它数据库系统。

您还可以搜索驱动程序:

sudo易于缓存中查找驱动程序名

Then Run the cmd php artisan migrate

2
投票

有同样的问题,只是想通,网站受到甲基苯丙胺的PHP运行,但是当你在命令调用,它运行Mac的(如果没有bash的路径修改)。您将有问题,当Mac没有这些扩展。

运行php -i找出加载扩展,并安装那些一个你错过了。或运行“/Applications/MAMP/bin/php/php5.3.6/bin/php工匠{你的命令}”使用甲基苯丙胺的


2
投票

我也得到同样的错误 - >“[PDOException] 找不到驱动程序“

从那以后,我使用的许多命令,但不能没有得到任何帮助

最后,我用下面的命令,这解决了我的问题。

命令和apt-get安装PHP5-源码

© www.soinside.com 2019 - 2024. All rights reserved.