php artisan migrate throw [PDO Exception]无法找到驱动程序 - 使用Laravel

Vam*_*lly 37 php mysql pdo driver laravel

我在安装laravel时遇到了不好的经历.但是,我能够这样做,并进入下一个级别.我使用了生成器并创建了我的迁移.但是当我输入最后一个命令时

php artisan migrate
Run Code Online (Sandbox Code Playgroud)

它抛出一个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'    => '',
        ),
Run Code Online (Sandbox Code Playgroud)

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

我尝试在stackoverflow和laravel论坛上搜索,人们建议它是PDO问题,而不是工匠或php的 - 我遵循这些建议,如添加

extension=pgsql.so
extension=pdo_pgsql.so
Run Code Online (Sandbox Code Playgroud)

在php.ini中

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

请有人帮忙解决这个问题.

我正在使用的环境:Mac,laravel 4,MAMP PRO和php 5.4.4

小智 57

您可以使用

sudo apt-get install php7-mysql
Run Code Online (Sandbox Code Playgroud)

要么

sudo apt-get install php5-mysql
Run Code Online (Sandbox Code Playgroud)

要么

sudo apt-get install php-mysql
Run Code Online (Sandbox Code Playgroud)

这对我有用.

  • sudo apt-get install php-mysql这对我有用。谢了哥们 (2认同)
  • 如果您不确定哪个,请使用 `php --version` 检查您的 PHP 版本并安装相应的驱动程序。 (2认同)

小智 19

这对我有用:

sudo apt-get install php5-sqlite
Run Code Online (Sandbox Code Playgroud)

这为php5安装了sqlite,然后我再次运行了php artisan migrate命令并且工作得很好.


JaT*_*Dan 17

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

extension=pdo_mysql.so
Run Code Online (Sandbox Code Playgroud)

您需要确保此文件存在于扩展目录中.

添加pdo_pgsql.so没有帮助,因为这是为PostgreSQL.

此外,您应确保在对PHP ini文件进行更改后重新启动Web服务器,否则可能无法反映更改.


Lei*_*ith 7

在这里遇到同样的问题,事实证明这是因为命令行中的PHP使用了php.ini与浏览器版本不同的文件,这就是为什么当你phpinfo()在浏览器中查看时它看起来正好加载扩展.

根据这个答案,你只需要运行:

php --ini
Run Code Online (Sandbox Code Playgroud)

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

找到后,使用所需的pdo扩展(在本例中为MySQL)修改它:

extension=pdo_mysql.so
Run Code Online (Sandbox Code Playgroud)

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

extension=php_pdo_mysql.dll
Run Code Online (Sandbox Code Playgroud)


Rob*_*ang 6

我想你错过了php5的mysql驱动程序.执行以下命令:

sudo apt-get install php5-mysql
/etc/init.d/php5-fpm restart
Run Code Online (Sandbox Code Playgroud)


Jal*_*kun 6

您必须安装最新版本,就php mysql 我而言,我正在安装php7.1-mysql

尝试这个

sudo apt-get install php7.1-mysql
Run Code Online (Sandbox Code Playgroud)

我正在使用最新版本的 laravel


小智 5

您缺少 PDO 驱动程序。

首先安装驱动

对于 ubuntu:对于 mysql 数据库。

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

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

您还可以搜索驱动程序:

sudo apt-cache 搜索驱动程序名称

Then Run the cmd php artisan migrate
Run Code Online (Sandbox Code Playgroud)