将 Laravel 部署到 Elastic Beanstalk - 数据库连接被拒绝

Deploying Laravel to Elastic Beanstalk - DB Connection Refused

我一直在开发 Laravel 应用程序并定期部署到 Elastic Beanstalk 实例,没有任何问题,但突然,在没有警告的情况下,部署开始失败。

显然,我立即想知道我可能在代码中更改了什么导致了这个,但我没有对核心配置进行任何更改。我回滚到较早的提交只是为了确保它不是我的代码,但我得到了同样的错误。

在我 运行 eb deploy 和 运行 设置 .ebextensions 配置后它失败了。

这是来自日志的错误消息:

[2018-01-08T10:50:34.672Z] INFO  [9457]  : Running 4 of 5 actions: EbExtensionPostBuild... 
[2018-01-08T10:50:35.523Z] ERROR [9457]  : Command execution failed: Activity failed. (ElasticBeanstalk::ActivityFatalError) caused by:   

In Connection.php line 664:
     SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where table_schema = custom and table_name
= migrations)

     In Connector.php line 67:
     SQLSTATE[HY000] [2002] Connection refused

      (ElasticBeanstalk::ExternalInvocationError)

数据库连接凭据绝对正确(也未更改)。

它在失败时尝试的命令很简单:

php artisan migrate --force

我已经尝试通过 SSH 连接到服务器,我可以手动 运行 相同的命令而不会出现问题。

我只是不明白为什么部署突然拒绝连接。这可能与 AWS 安全配置有关吗?它会过期吗? :-/

事实证明,问题是由本地设置缓存然后部署到服务器引起的:bootstrap/cache/config.php

使用 php artisan config:clear 清除缓存删除了文件并解决了问题。