Php Laravel4.1到Heroku:SQLSTATE[HY000][2002]没有这样的文件或目录

Php Laravel4.1到Heroku:SQLSTATE[HY000][2002]没有这样的文件或目录,php,heroku,laravel-4,Php,Heroku,Laravel 4,我根据本文在Heroku中部署了我的Laravel4.1应用程序 静态HTML主页加载正常,但当我试图登录时,我得到了错误 SQLSTATE[HY000] [2002] No such file or directory 我的本地设置是Laravel4.1和MySQL 我认为在我部署时没有创建数据库 我需要手动操作吗?那么我的设置是怎样的 谢谢 问题可能是您的环境可能仍然指向本地。在cli中,键入heroku运行php artisan env以了解情况 否则,您可能需要运行php artis

我根据本文在Heroku中部署了我的Laravel4.1应用程序

静态HTML主页加载正常,但当我试图登录时,我得到了错误

SQLSTATE[HY000] [2002] No such file or directory 
我的本地设置是Laravel4.1和MySQL

我认为在我部署时没有创建数据库

我需要手动操作吗?那么我的设置是怎样的


谢谢

问题可能是您的环境可能仍然指向本地。在cli中,键入
heroku运行php artisan env
以了解情况

否则,您可能需要运行
php artisan migrate--env=production
,将其设置为正确的生产环境

然后,您可能会遇到另一个类似的问题:

PHP致命错误:在第1154行的/var/www/mysite/vendor/Symfony/Console/Symfony/Component/Console/Application.PHP中调用未定义的函数Symfony\Component\Console\mb_convert_variables()

相信我,tt和mb_字符串模块没有任何关系,就像这篇文章所说的。

问题在于环境设置

首先,确保您的.env.php文件与composer.json处于相同的目录级别,并且它存在于heroku实例中。因为你不能在里面用FTP,你需要推到回购。但laravel告诉你这是git被忽略的,所以你需要暂时允许它推到你的heroku回购协议

接下来,您需要编辑bootstrap\start.php

将$env=$app->detectEnvironment(函数(){})替换为:

$env=$app->detectEnvironment(函数(){
返回文件_存在(dirname(_文件__)。'/../.env.php')
?
“生产”
:
"本地",;
});
完成所有这些操作后,重新运行migrate命令,它就会工作

您可以点击此链接以供参考。

您的服务器上是否设置了mysql?可能存在重复的