laravel mysql驱动_关于mysql:php artisan迁移引发[PDO异常]找不到驱动程序-使用Laravel...

我在安装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'    => '',

),

那是我在config / database.php中的配置。

我尝试在stackoverflow和laravel论坛上进行搜索,人们认为这是PDO问题,而不是artisan或php的问题-我遵循这些建议,例如添加

extension=pgsql.so

extension=pdo_pgsql.so

在php.ini中

没有积极的结果。 总是说[PDOException]could not find driver.

有人可以帮忙解决这个问题吗?

我正在使用的环境:Mac,laravel 4,带有AMP 5.4.4的MAMP PRO

您有pdo_mysql.so扩展名吗?

是的,我有...很抱歉,仅粘贴了2个扩展名,但是我确实具有extension = imap.so extension = yaz.so extension = mcrypt.so extension = gettext.so extension = pgsql.so extension = pdo_pgsql.so extension = pdo_mysql。所以

并且确定模块已启用吗?在LAMP中,可以使用sudo a2enmod启用模块。查看您的phpinfo(),如果驱动程序已启用。

在phpinfo()上-显示启用了sqlite,pgsql,mysql的PDO驱动程序!

在使用CLI时,请尝试运行php -i | less并查看是否实际加载了PDO扩展。如果不是,那么您将需要修改CLI使用的php.ini文件,该文件与Apache使用的文件不同。它通常与PHP exe位于同一目录,但是在Windows上就是这样,不确定在Mac上的位置。但是这个家伙确实stackoverflow.com/questions/2750580/

@RiggsFolly我遇到了您指定的问题。我不需要php.ini中的pdo_mysql,而是需要在php-cli.ini中使用它。谢谢!

大家好,对于发现这篇文章的Windows 10和WAMP用户,我有一个解决方案。[请去访问此链接] [1]。它对我有用,很难找到解决方案,但我希望将来对其他人有帮助。 [1]:stackoverflow.com/questions/54580252/

您可以使用

sudo apt-get install php7-mysql

要么

sudo apt-get install php5-mysql

要么

sudo apt-get install php-mysql

这对我有用。

sudo apt-get install php-mysql这对我有用。谢了哥们

如果不确定,请使用php --version检查PHP版本并安装相应的驱动程序。

这为我工作:

sudo apt-get install php5-sqlite

这为php5安装了sqlite,然后我再次运行了php artisan migration命令,并且运行良好。

修复了尝试在主Laravel框架上运行phpunit时出现的问题。

我不明白为什么,但是安装php5-sqlite导致PDO mysql正常工作。谢谢!

Ubuntu的最新版本不包含此软件包。对于16.04,运行:sudo apt-get install php-sqlite3

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

extension=pdo_mysql.so

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

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

此外,您应该确保在对PHP ini文件进行更改后重新启动Web服务器,否则更改可能不会反映出来。

如何检查扩展名目录中是否存在该文件?

通常,您的扩展目录将是您在./ext下安装PHP的位置,例如,在Windows上,默认情况下使用PHP的安装程序包在C:\Program Files (x86)\PHP\ext上。

extension_dir ="ApplicationsMAMPbinphpphp5.4.4libphpextensionsno-debug-non-zts-20100525"指向此文件夹,该文件夹具有所有必需的.so文件

在对PHP ini文件进行适当的更改后,您是否重新启动了Web服务器?

设置完配置后,请确保您重新启动Web服务器sudo服务apache2 restart

在这里遇到同样的问题,结果是因为命令行中的PHP使用的浏览器版本与php.ini文件不同,这就是为什么当您在浏览器中查看phpinfo()时看起来正确加载了扩展名的原因浏览器。

按照此答案,您只需要运行:

php --ini

在命令行中,它将告诉您当前加载的php.ini的路径(实际上可能是与常规php.ini文件位于同一位置的php-cli.ini文件)。

找到该文件后,请使用所需的pdo扩展名对其进行修改(在本例中为MySQL):

extension=pdo_mysql.so

或者,对于使用某种WAMP服务器的Windows上的任何其他用户,它可能看起来像这样:

extension=php_pdo_mysql.dll

我认为您错过了php5的mysql驱动程序。

执行以下命令:

sudo apt-get install php5-mysql

/etc/init.d/php5-fpm restart

请同时检查您的Laravel .env文件。确保DB_CONNECTION=mysql,否则它不适用于MySQL。它试图加载其他东西。

您缺少PDO驱动程序。

首先安装驱动程序

对于ubuntu:对于mysql数据库。

sudo apt-get install php5.6-mysql/php7.2-mysql

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

您也可以搜索驱动程序:

sudo apt-cache search drivername

Then Run the cmd php artisan migrate

有同样的问题,只是想知道,网站正在MAMP的php下运行,但是当您调用命令时,它将运行mac(如果未修改bash路径)。当Mac没有这些扩展名时,您将遇到问题。

运行php -i找出已加载的扩展,然后安装您错过的扩展。或运行'/Applications/MAMP/bin/php/php5.3.6/bin/php artisan {您的命令}'以使用MAMP

ApplicationsMAMPbinphpphp5.5.26binphp artisan migrate此命令对我有用。 tnx很多:*

我也遇到了同样的错误->" [PDOException]

找不到驱动程序"

之后,我使用了许多命令,但没有得到任何帮助

最后,我使用以下命令解决了我的问题。

须藤apt-get install php5-sqlite

那很棒! Mac呢?

您必须安装最新版本的php mysql

就我而言,我正在安装php7.1-mysql

尝试这个

sudo apt-get install php7.1-mysql

我正在使用最新版本的laravel

使用sqlite进行Laravel测试需要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

我在debian上遇到了这个问题。问题是,我将dotdeb存储库用于更新的PHP软件包。由于某种原因,它将php cli更新为7.0,而网络php二进制仍为5.6。我使用此答案将php命令行二进制文件链接到5.6版本,如下所示:

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

链接的答案在我的debian 9中帮助了我,我需要更新php5.6的替代版本。谢谢

我正在使用Ubuntu 14.04

下面的命令为我解决了这个问题。

sudo apt-get install php-mysql

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

错误:

laravel / framework v5.2.14要求ext-mbstring *->系统中缺少所请求的PHP扩展名mbstring。

phpunit / phpunit 4.8.22需要ext-dom *->系统中缺少所请求的PHP扩展dom。

[PDOException]

找不到驱动程序

解决方案:

我安装了此软件包,但问题消失了。

sudo apt-get install php-mbstring

sudo apt-get install php-xml

sudo apt-get install php-mysql

首先检查你的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

这与我一起工作:(对于pgsql:使用'pgsql'而不是'mysql')

步骤1)

sudo apt-get install php-mysql

第2步)

php artisan config:clear

第三步

php artisan config:cache

第四步)

然后重新启动服务器,并再次生成密钥并将其迁移,完成

我在PostgreSQL中遇到此错误,解决方案是:

sudo apt-get install php7.1-pgsql

您只需要使用已安装的PHP版本,我的是7.1。

这已经解决了PostgreSQL的问题。

如果您使用的是Laravel 5.x,并且该错误是由于尝试修改列的属性而引起的,则该错误可能是由于缺少先决条件而引起的。

尝试这个:

composer require doctrine/dbal

然后尝试运行您的迁移。

从这里:

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

我找到了此错误的正确解决方案!您没有安装任何数据库或此文件中的默认数据库

config / database.php

设置为这样的其他数据库

'default' => 'sqlite',

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

更改已安装的默认数据库,或安装该数据库作为默认数据库!我将那行更改为此后,已经安装了mysql和php artisan migration:

'default' => 'mysql',

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

就我而言,我不知道Apache运行的PHP与CLI运行的PHP是不同的。如果在httpd.conf中进行配置时指定了一个PHP模块,而不是CLI使用的默认模块,则可能是这种情况。

刚刚替换:; php.ini文件中的extension = pdo_mysql到extension = pdo_mysql。

如果您正在使用基于拱形的系统,例如在manjaro中

只是使用

sudo pacman -S php-sqlite

重新启动您的httpd

systemctl restart httpd

通过此命令安装

sudo apt-get install php5-gd

这对我有用。

对于未来的搜索者。

在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

对于找到这篇文章的Windows 10和WAMP的那些用户,我有一个解决方案。请转到此链接。它对我有用,很难找到解决方案,但我希望将来对其他人有帮助。

我也遇到了同样的错误->" [PDOException]

找不到驱动程序"

我意识到php指向的是/ usr / bin / php而不是lampp / opt / lampp / bin / php,所以我只是创建了

和别名

别名php =" / opt / lampp / bin / php"

还必须对.env文件进行更新,以确保更新了数据库访问凭据。

猜猜是什么,它奏效了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值