Laravel 5.1 - `php artisan migrate` 给出了 'PDOException'
Posted
技术标签:
【中文标题】Laravel 5.1 - `php artisan migrate` 给出了 \'PDOException\'【英文标题】:Laravel 5.1 - `php artisan migrate` is giving 'PDOException'Laravel 5.1 - `php artisan migrate` 给出了 'PDOException' 【发布时间】:2015-10-11 07:42:04 【问题描述】:我知道这是一个重复的问题,但是无论我尝试了什么,不幸的是没有运气。 (补充一下,我用的是MAMP)
我相信我成功设置了数据库连接,因为使用注册表单 (Auth/register),在提交表单后,我之前收到错误 PDO Exception: Driver not found
,但在更改为我的从默认的 MAMP 到 php 5.5.17
(PHP 5.6.1
),我开始收到错误:SQLSTATE[42S02]: Base table or view not found: 1146 Table 'laravel.users' doesn't exist
,我认为这表明数据库连接正在工作,只是 'users table' 没有已创建。
我的问题从这里开始。当我尝试在终端中使用php artisan migrate
或migrate:anything
时,它会抛出错误:
[PDO异常] 找不到驱动
但我想做的是使用php artisan migrate
能够创建表并迁移它们。
我尝试过的事情:
如果 pdo 文件安装成功,我添加了<?php echo phpinfo(); ?>
。
我得到了结果:
所以我觉得还可以。
人们在谈论打开
/MAMP/bin/php/php5.6.1/conf/php.ini
并在代码中添加 extension=pdo_mysql.so
,但我的已经放在那里了。
当我在项目根目录 (/MAMP/htdocs/proj) 中尝试
php -i | grep PDO
时,我得到了:
PDO
PDO support => enabled
PDO drivers => sqlite
PDO Driver for SQLite 3.x => enabled
php -i | grep Conf
和 `php --ini 也输出:
Configuration File (php.ini) Path: /Applications/MAMP/bin/php/php5.6.1/conf
Loaded Configuration File: /Applications/MAMP/bin/php/php5.6.1/conf/php.ini
但php artisan migrate
仍然抛出同样的错误
解决方案:
我选择 MAMP 在浏览器中使用版本 5.5.17 而不是 5.6.1(来自 MAMP Preferences),但是这次终端运行的是 5.6.1。我所做的是首先检查which PHP
命令,然后运行nano ~/.bash_profile
命令;并编辑版本文档。现在一切都已启动并运行:)
【问题讨论】:
【参考方案1】:您在浏览器中看到的是您为通过 apache 运行的 PHP 启用了 PDO。但这并不意味着您已经为通过 CLI 运行的 PHP 启用了它(实际上它们使用两个单独的 ini 文件)。要确认您可以尝试:
php -i | grep PDO
您会看到它丢失或未启用。所以你需要做的是找到哪个php.ini正在使用通过CLI运行的PHP并在那里添加PDO模块:
php -i | grep Conf
它会输出如下内容:
Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini
【讨论】:
我编辑了 OP(我尝试过的部分)。请看一下 @senty 我也编辑了我的答案,请看一下,让我知道结果。 是的,我看到了输出:Configuration File (php.ini) Path => /etc/php5/cli Loaded Configuration File => /etc/php5/cli/php.ini
但php artisan migrate
仍然抛出同样的错误[PDOException] could not find driver
@senty 您是否将 PDO 模块添加到该 ini 文件中?
extension=pdo_mysql.so
已经存在于我的 php.ini 文件中:/以上是关于Laravel 5.1 - `php artisan migrate` 给出了 'PDOException'的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5.1 Php artisan 命令在作曲家更新后不起作用
在 Laravel 5.1 中请求 ajax 文件不控制 PHP?
Laravel 5.1 中的 VerifyCsrfToken.php 第 53 行中的 TokenMismatchException