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 migrate或migrate:{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.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
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)