Laravel SQLSTATE [HY000] [2002]连接被拒绝,但修改器起作用

时间:2018-08-25 16:44:47

标签: php laravel laravel-5 artisan

我有一个生产站点,该站点使用Amazon Server上的数据库,我在同一服务器上还有两个站点,而且两个站点都没有问题。

在这个特定站点上,与mysql的连接无法正常工作,我以为laravel应用缺少或没有看到env文件,但在运行dotnet --list-runtimes并尝试执行任何命令时情况并非如此作品:

for (let index = 0; index < obj.recommendedRoutes.length; index++) {
  console.log('Pushed: ' + index);
  promiseArr.push(
    User.find({
      _id: obj.recommendedRoutes[index].userId,
    }).then((data) => {
      obj.recommendedRoutes[index].userObj = data[0].toObject();
      console.log('Completed: ' + index)
    }, err => console.log('Database error: ' + err))
  );
}

App :: environment()方法也有效:

php artisan tinker

env文件清楚地显示了DB::table('categories')->get(); => Illuminate\Support\Collection {#842 all: [ {#828 +"id": 1, +"parent_id": null, +"order": 1, +"name": "Noticias", +"slug": "noticias", +"created_at": "2018-01-09 19:26:32", +"updated_at": "2018-01-09 19:26:32", }, ], } ,但是它返回了很多调试信息,就像Web服务器除了工匠之外没有读取env文件一样。

这让我发疯,因为它本身就开始失败,服务器或代码上没有任何更改,这是唯一失败的项目。

我还能检查什么?

>>> App::environment();
=> "production"

3 个答案:

答案 0 :(得分:1)

您应该验证您是否拥有bootstrap/cache/config.php文件。如果是,则表示您的配置已缓存。比您可以运行:

php artisan config:cache

刷新配置并同步您在.env

中设置的数据
php artisan config:clear

如果您不想使用缓存的配置(请记住,建议在生产时缓存配置)

答案 1 :(得分:0)

我遇到了类似的问题,在安装了其他所有内容之后,我安装了php7.2-mysql。修补匠工作正常,但我的应用程序无法连接。

我花了2个小时尝试调试,直到简单的apache重新启动才解决了问题。

答案 2 :(得分:0)

对我来说,解决方案是重新启动laravel开发服务器,即:再次运行php artisan serve

最初运行开发服务器后,我更改了数据库配置。