我有一个小的简单API,基本上是为了测试在Laravel 6中构建的,使用一个简单的JWT Auth来允许登录和限制对几个路由的访问。所有简单的东西,真的和它的工作很好,使用家园。
然而,在水蒸气上,我无法让它真正地与数据库对话。下面是我的vapor.yml的样子,除了在
id: 7529
name: mything
environments:
production:
database: mydb
database-user: vapor
memory: 1024
cli-memory: 512
runtime: php-7.4
build:
- 'composer install'
- 'php artisan jwt:secret'
- 'php artisan event:cache'
- 'npm ci && npm run prod && rm -rf node_modules'
mything-environment:
build:
- 'composer install'
staging:
memory: 1024
cli-memory: 512
runtime: php-7.4
build:
- 'composer install'
- 'php artisan jwt:secret'
- 'php artisan event:cache'
- 'npm ci && npm run dev && rm -rf node_modules'我已经使用蒸气CLI设置了db,就像php vendor/bin/vapor mydb一样
并编辑了.env.production文件,就像php vendor/bin/vapor env:pull production一样
并添加了相关的conn详细信息。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mydb我已经重新部署了很多次,并且应用程序可以工作。但是,在执行任何类型的数据库工作时,总是会出现错误,例如:
{"message":"SQLSTATE[HY000] [2002] Connection refused (SQL: insert into `users` (`name`, `email`, `password`, `updated_at`, `created_at`) values (testtest, test@test.com, $2y$10$SYYdAXC1aYrFUBQ/wVHcDuUgzBfTK76cvqxaiS2d8Kbg4Vbp/VGXK, 2020-02-29 22:37:36, 2020-02-29 22:37:36))","context":{"exception":{"class":"Illuminate\\Database\\QueryException","message":"SQLSTATE[HY000] [2002] Connection refused (SQL: insert into `users` (`name`, `email`, `password`, `updated_at`, `created_at`) values (testtest, test@test.com, $2y$10$SYYdAXC1aYrFUBQ/wVHcDuUgzBfTK76cvqxaiS2d8Kbg4Vbp/VGXK, 2020-02-29 22:37:36, 2020-02-29 22:37:36))","code":2002,"file":"/var/task/vendor/laravel/framework/src/Illuminate/Database/Connection.php:669","previous":{"class":"PDOException","message":"SQLSTATE[HY000] [2002] Connection refused","code":2002,"file":"/var/task/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70"}},"aws_request_id":"9bba7341-a0f3-481c-961a-a0b59fcb64b9"},"level":400,"level_name":"ERROR","channel":"谁能给我指明正确的方向?我不相信我需要为用户和密码添加.env vars,我已经尝试过了,但是问题仍然存在。
发布于 2020-03-01 05:42:44
您的配置应该如下所示:
vapor.yml
id: 7529
name: mything
environments:
production:
database: mydb
memory: 1024
cli-memory: 512
runtime: php-7.4
build:
- 'composer install'
- 'php artisan jwt:secret'
- 'php artisan event:cache'
- 'npm ci && npm run prod && rm -rf node_modules'
mything-environment:
build:
- 'composer install'
staging:
memory: 1024
cli-memory: 512
runtime: php-7.4
build:
- 'composer install'
- 'php artisan jwt:secret'
- 'php artisan event:cache'
- 'npm ci && npm run dev && rm -rf node_modules'如果使用默认的“蒸气”用户,则不需要指定数据库用户。
.env
DB_DATABASE=mydb您不应该覆盖除数据库名称以外的任何其他数据库环境变量,因为蒸气会自动为您注入这些变量,在您的情况下,您将指定到localhost的连接,这不是您的数据库所在的位置。
还请注意,当您在蒸气中创建数据库环境时,唯一的现有数据库架构将是“蒸气”,为了连接到名为"mydb“的自定义数据库,必须首先在该数据库环境中创建数据库架构。
https://stackoverflow.com/questions/60470284
复制相似问题