Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 7-AWS-运行“php artisan迁移”时出现Elastic Beanstalk+RDS错误_Laravel_Amazon Web Services_Amazon Elastic Beanstalk_Amazon Rds - Fatal编程技术网

Laravel 7-AWS-运行“php artisan迁移”时出现Elastic Beanstalk+RDS错误

Laravel 7-AWS-运行“php artisan迁移”时出现Elastic Beanstalk+RDS错误,laravel,amazon-web-services,amazon-elastic-beanstalk,amazon-rds,Laravel,Amazon Web Services,Amazon Elastic Beanstalk,Amazon Rds,我正在尝试在AWS上的Elastic Beanstalk中运行Laravel应用程序。 我正在AWS Elastic Beanstalk上使用Laravel版本7和PHP7.4。 每次尝试运行php artisan migrate时,都会出现以下错误: 我的数据库RDS凭据都是正确的 照亮\数据库\查询异常 SQLSTATE[HY000][2002]连接被拒绝SQL:select*from 信息\u sche ma.表格,其中 table_schema=forge和table_name=migr

我正在尝试在AWS上的Elastic Beanstalk中运行Laravel应用程序。 我正在AWS Elastic Beanstalk上使用Laravel版本7和PHP7.4。 每次尝试运行php artisan migrate时,都会出现以下错误: 我的数据库RDS凭据都是正确的

照亮\数据库\查询异常

SQLSTATE[HY000][2002]连接被拒绝SQL:select*from 信息\u sche ma.表格,其中 table_schema=forge和table_name=migrations和table_type ='基表'

在 vendor/laravel/framework/src/illumb/Database/Connection.php:671 667 |//如果在尝试运行查询时发生异常,我们将格式化错误 668 |//包含SQL绑定的消息,这将使该异常成为异常 669 |//对开发人员的帮助要大得多,而不仅仅是数据库的错误。 670 |捕获例外$e{ 671 |抛出新的QueryException 672 |$query,$this->prepareBindings$bindings,$e 673| ; 674| } 675|


我解决了自己的问题

我通过SSH在/var/www/html目录中运行

php artisan迁移-vv

获取迁移过程的调试日志和堆栈跟踪。 我注意到Laravel在运行迁移命令时没有使用环境变量DB_HOST等。 因此,我添加了.ebextensions目录并创建了一个新文件: migration.config

现在迁移开始工作了,因为Laravel可以访问环境变量。 因此,即使是最新版本的Laravel7、MYSQL 8.0.17和PHP7.4也在使用弹性豆茎RDS

编辑: 如果已在AWS中指定为环境变量:

APP_ENV=生产

使用php artisan migrate-force代替php artisan migrate

问候
你不能那样做。。RDS将阻止来自laravel的查询,如果您在RDS中为该查询创建权限。。。但最简单的方法是运行aws ligthsail而不是beanstalk,这样您的代码和数据库就可以在同一台服务器上运行,这就是我所做的。@Alex Guerrero我编辑了所有安全组,并为所有流量打开了所有端口以进行测试,因为我只是想让它工作。但事实并非如此。那我为什么不能这样做呢?
container_commands:
     01migrations:
        command: "php artisan migrate"