将 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
清除缓存删除了文件并解决了问题。
我一直在开发 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
清除缓存删除了文件并解决了问题。