SQLSTATE[HY000][2002]在Elastic Beanstalk/Laravel上执行命令时,没有此类文件或目录

SQLSTATE[HY000][2002]在Elastic Beanstalk/Laravel上执行命令时,没有此类文件或目录,laravel,amazon-elastic-beanstalk,env,Laravel,Amazon Elastic Beanstalk,Env,我在Laravel 5.1/AWS Elastic Beanstalk中有一个生产应用程序 由于我有几个环境和自动部署,所以我不使用.env,但我定义了我的环境变量: 当代码部署到Elastic beanstalk时,我无法执行no命令,因为环境变量没有解析 因此,当我执行: php artisan migrate 我得到: [PDOException] SQLSTATE[HY000] [2002] No such fi

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

由于我有几个环境和自动部署,所以我不使用.env,但我定义了我的环境变量:

当代码部署到Elastic beanstalk时,我无法执行no命令,因为环境变量没有解析

因此,当我执行:

 php artisan migrate
我得到:

[PDOException]                                    
SQLSTATE[HY000] [2002] No such file or directory
在这方面,用户和我有完全相同的问题,但他通过创建一个.environment来解决这个问题,该环境包含他所有环境的变量。我不太喜欢它

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


我不知道该怎么办,也不想在我的git中包含我的db连接设置…

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

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

e、 g.
eb setenv数据库=laravel密码=123

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

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

其他选择包括:

在源代码管理中存储凭据

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

将它们存储在S3上的一个文件中,并将其锁定为仅可由Elastic Beanstalk实例访问,然后向.ebextensions配置文件中添加一些内容


如果您能澄清其中任何一项不正确的原因,这可能有助于找到正确的解决方案。

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

我正在使用RDS。我没有说你没有使用RDS,我说你需要使用RDS或一个单独的EC2实例,因为这是一个回答,可以帮助将来有同样问题的人。这是否毫无帮助,值得投否决票?它不是提供了一种将您的配置与源代码分开的方法吗?Thomas,我非常感谢任何试图帮助我的人,但我非常确定您的回答不会解决我的问题,也不会有任何帮助。否决票是删除你的答案并收回你的分数的邀请。这就是stackoverflow的工作原理。如果你不想使用Elastic Beanstalk提供的机制,你到底在寻找什么?虽然你称我的答案质量很低,但你仍然没有以任何方式澄清你想要的是什么。我已经使用了elastic beanstalk环境变量,这是主要问题,请参考我的问题。顺便说一句,我不是有意伤害你,我只是觉得你没有打开我提供的链接