NKo*_*Kol 3 amazon-web-services amazon-rds laravel amazon-elastic-beanstalk
我正在尝试在 AWS 上的 Elastic Beanstalk 中运行 Laravel 应用程序。
我在 AWS Elastic Beanstalk 上使用 Laravel 版本 7 和 PHP 7.4。
每次当我尝试运行“php artisan migrate”时,我都会收到此错误:
我的数据库 RDS 凭据全部正确。
照亮\数据库\QueryException
SQLSTATE[HY000] [2002] 连接被拒绝(SQL:select * from information_schema.tables where table_schema = forge and table_name = migrations and table_type
= 'BASE TABLE')在供应商/laravel/framework/src/Illuminate/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
container_commands:
01migrations:
command: "php artisan migrate"
Run Code Online (Sandbox Code Playgroud)
现在迁移正在工作,因为 Laravel 可以访问环境变量。因此,即使是最新版本的 Laravel 7、MYSQL 8.0.17 和 PHP 7.4 也可以在 Elastic Beanstalk RDS 上运行。
编辑:
如果您已在 AWS 中指定为环境变量:
APP_ENV =“生产”
使用php artisan migrate --force而不是php artisan migrate
问候 NKol
| 归档时间: |
|
| 查看次数: |
1978 次 |
| 最近记录: |