Laravel 5.1 - `php artisan migrate`正在给'PDOException'

sen*_*nty 2 mysql pdo mamp laravel

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

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

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

[PDOException]
找不到驱动程序

但我想要做的是使用php artisan migrate能够创建表并迁移它们.



我尝试过的事情:

  • 我添加<?php echo phpinfo(); ?>了如果成功安装了pdo文件.我得到了结果:

所以我认为这似乎没关系.


  • 人们在谈论打开/MAMP/bin/php/php5.6.1/conf/php.ini和添加extension=pdo_mysql.so代码,但我已经把它放在那里了.

  • 当我尝试php -i | grep PDO项目根目录(/ MAMP/htdocs/proj)时,我得到了:

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仍然抛出相同的错误

解:

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

sha*_*ddy 7

您在浏览器中看到的是,您为通过apache运行的PHP启用了PDO.但这并不意味着你已经启用了通过CLI运行的PHP(实际上它们使用了两个独立的ini文件).确认您可以尝试:

php -i | grep PDO
Run Code Online (Sandbox Code Playgroud)

你会看到它丢失或没有启用.所以你需要做的是找到哪个php.ini正在使用通过CLI运行的PHP并在那里添加PDO模块:

php -i | grep Conf
Run Code Online (Sandbox Code Playgroud)

它将输出如下内容:

Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini
Run Code Online (Sandbox Code Playgroud)