Laravel 5.1 - `php artisan migrate` 正在给予 'PDOException'
Laravel 5.1 - `php artisan migrate` is giving 'PDOException'
我知道这是一个重复的问题,但是无论我尝试什么,不幸的是没有运气。 (补充一下,我正在使用 MAMP)
我相信我成功设置了数据库连接,因为使用注册表单 (Auth/register),在提交表单后,我收到错误 PDO Exception: Driver not found
之前,但是在将我的 MAMP 从默认值 (PHP 5.6.1
) 更改为 PHP 5.5.17
之后,我开始收到错误:SQLSTATE[42S02]: Base table or view not found: 1146 Table 'laravel.users' doesn't exist
,我相信这表明数据库连接正在工作并且它是只是 'users table' 没有创建。
这里开始我的问题。当我尝试在终端中使用 php artisan migrate
或 migrate:{anything}
时,它会抛出错误:
[PDOException]
could not find driver
但我想做的是使用 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 首选项),但是这次终端是 运行 5.6.1。我所做的是首先检查 which PHP
命令,然后 运行 nano ~/.bash_profile
命令;并编辑版本文件。现在一切都准备就绪 运行 :)
您在浏览器中看到的是您通过 apache 为 PHP 运行 启用了 PDO。但这并不意味着您通过 CLI 为 PHP 运行 启用了它(实际上它们使用两个单独的 ini 文件)。确认可以试试:
php -i | grep PDO
您会看到它丢失或未启用。所以你需要做的是通过 CLI 找到哪个 php.ini 使用 PHP 运行 并在那里添加 PDO 模块:
php -i | grep Conf
它将输出如下内容:
Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini
我知道这是一个重复的问题,但是无论我尝试什么,不幸的是没有运气。 (补充一下,我正在使用 MAMP)
我相信我成功设置了数据库连接,因为使用注册表单 (Auth/register),在提交表单后,我收到错误 PDO Exception: Driver not found
之前,但是在将我的 MAMP 从默认值 (PHP 5.6.1
) 更改为 PHP 5.5.17
之后,我开始收到错误:SQLSTATE[42S02]: Base table or view not found: 1146 Table 'laravel.users' doesn't exist
,我相信这表明数据库连接正在工作并且它是只是 'users table' 没有创建。
这里开始我的问题。当我尝试在终端中使用 php artisan migrate
或 migrate:{anything}
时,它会抛出错误:
[PDOException]
could not find driver
但我想做的是使用 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 首选项),但是这次终端是 运行 5.6.1。我所做的是首先检查 which PHP
命令,然后 运行 nano ~/.bash_profile
命令;并编辑版本文件。现在一切都准备就绪 运行 :)
您在浏览器中看到的是您通过 apache 为 PHP 运行 启用了 PDO。但这并不意味着您通过 CLI 为 PHP 运行 启用了它(实际上它们使用两个单独的 ini 文件)。确认可以试试:
php -i | grep PDO
您会看到它丢失或未启用。所以你需要做的是通过 CLI 找到哪个 php.ini 使用 PHP 运行 并在那里添加 PDO 模块:
php -i | grep Conf
它将输出如下内容:
Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini