【问题标题】:SQLSTATE[HY000] [2002] No such file or directory when executing a command on Elastic Beanstalk / LaravelSQLSTATE[HY000] [2002] 在 Elastic Beanstalk / Laravel 上执行命令时没有这样的文件或目录
【发布时间】:2016-08-29 02:12:16
【问题描述】:

我在 Laravel 5.1 / AWS Elastic Beanstalk 中有一个生产应用程序。

由于我有多个环境,并且自动部署,我不使用.env,但我定义了我的环境变量directly on server

当代码部署到 Elastic beanstalk 时,由于环境变量未解析,我无法执行 no 命令。

所以,当我执行时:

 php artisan migrate

我明白了:

[PDOException]                                    
SQLSTATE[HY000] [2002] No such file or directory

在这个post 中,用户遇到了与我完全相同的问题,但他解决了这个问题,创建了一个包含所有环境变量的 .environment。我不是很喜欢。

然后,如果我把它放在 .gitignore 中,持续部署将永远不会部署它。

我不知道该怎么做,也不想在我的 git 中包含我的数据库连接设置...

【问题讨论】:

    标签: laravel amazon-elastic-beanstalk env


    【解决方案1】:

    我遇到了这个问题,并通过将端口添加到 Elastic Beanstalk 中的 DB_HOST 环境变量的末尾来解决它。如果有人遇到此问题并且不使用 EB 环境变量,请尝试将端口添加到 .env。

    【讨论】:

      【解决方案2】:

      出现此消息的原因是因为 PHP 正在寻找 MySQL 套接字文件,而 MySQL 未安装在服务器上,您需要使用 RDS 或托管在 EC2 或其他地方的 MySQL 实例。

      要配置您的数据库,您可以使用 AWS EB 命令行工具,如下所述:

      http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-setenv.html

      例如eb setenv DATABASE=laravel PASSWORD=123

      或者您可以使用 Web 控制台对其进行配置:

      http://docs.aws.amazon.com/gettingstarted/latest/deploy/envvar.html

      保存这些将导致应用程序更新,因此请同时更新所有这些,因为在部署更改时您将无法编辑任何内容。

      其他选项包括:

      在源代码管理中存储凭据

      将它们存储在 Elastic Beanstalk 接口中,该接口将它们推送到环境变量中

      将它们存储在 S3 上的一个文件中,您将其锁定为只能由您的 Elastic Beanstalk 实例访问,将一些内容添加到您的 .ebextensions 配置文件中

      如果您能阐明其中任何一个不正确的原因,可能有助于找到正确的解决方案。

      【讨论】:

      • 我正在使用 RDS。最好问我而不是猜测
      • 我不是说你没有使用过 RDS,我说你需要使用 RDS 或单独的 EC2 实例,因为这是为了帮助拥有相同实例的人的答案未来的问题。这是否如此无益以至于值得一票否决?它不是提供了一种将您的配置与源代码分开的方法吗?
      • Thomas,我很感激任何试图帮助我的人,但我很确定你的回答不会解决我的问题,也不会帮助我。否决票是邀请您删除您的答案并取回您的积分。这就是stackoverflow的工作方式。它可以保持问题和答案的质量。
      • 如果您不想使用 Elastic Beanstalk 提供的机制,您究竟在寻找什么?尽管您称我的回答质量低下,但您仍然没有以任何方式澄清您确实想要什么。
      • 我已经使用了 elastic beanstalk 环境变量,这是主要问题,请参考我的问题。顺便说一句,我不是故意要伤害你,我只是觉得你没有打开我提供的链接
      猜你喜欢
      • 2021-12-03
      • 2020-12-15
      • 2021-08-12
      • 2020-05-07
      相关资源
      最近更新 更多