Laravel 5.1 - `php artisan migrate`正在提供'PDOException'

时间:2015-07-21 17:43:55

标签: mysql laravel pdo mamp

我知道这是一个重复的问题,不管我试过什么,不幸的是没有运气。 (补充一下,我正在使用MAMP)

我相信我成功设置了数据库连接,因为在提交表单后,使用注册表单( Auth / register ),我之前收到错误PDO Exception: Driver not found,但是在更改之后我从默认(PHP 5.5.17)到我的MAMP PHP 5.6.1,我开始收到错误:SQLSTATE[42S02]: Base table or view not found: 1146 Table 'laravel.users' doesn't exist,我相信这表明数据库连接正常,而且只是'用户表'未创建。

这里开始我的问题。当我尝试在终端中使用php artisan migratemigrate:{anything}时,它会抛出错误:

  

[PDOException]
    找不到司机

但我想要做的是使用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.iniphp artisan migrate仍然犯同样的错误

SOLUTION:

我选择MAMP在浏览器中使用版本5.5.17而不是5.6.1(来自MAMP首选项),但这次终端运行的是5.6.1。我所做的是首先检查which PHP命令,然后运行nano ~/.bash_profile命令;并编辑版本文档。现在一切都正常运行:)

1 个答案:

答案 0 :(得分:7)

您在浏览器中看到的是,您为通过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