首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在生产中使用Laravel连接到MySQL数据库

无法在生产中使用Laravel连接到MySQL数据库
EN

Stack Overflow用户
提问于 2020-02-29 22:40:49
回答 1查看 2K关注 0票数 0

我有一个小的简单API,基本上是为了测试在Laravel 6中构建的,使用一个简单的JWT Auth来允许登录和限制对几个路由的访问。所有简单的东西,真的和它的工作很好,使用家园。

然而,在水蒸气上,我无法让它真正地与数据库对话。下面是我的vapor.yml的样子,除了在

代码语言:javascript
复制
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详细信息。

代码语言:javascript
复制
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mydb

我已经重新部署了很多次,并且应用程序可以工作。但是,在执行任何类型的数据库工作时,总是会出现错误,例如:

代码语言:javascript
复制
{"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,我已经尝试过了,但是问题仍然存在。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-01 05:42:44

您的配置应该如下所示:

vapor.yml

代码语言:javascript
复制
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

代码语言:javascript
复制
DB_DATABASE=mydb

您不应该覆盖除数据库名称以外的任何其他数据库环境变量,因为蒸气会自动为您注入这些变量,在您的情况下,您将指定到localhost的连接,这不是您的数据库所在的位置。

还请注意,当您在蒸气中创建数据库环境时,唯一的现有数据库架构将是“蒸气”,为了连接到名为"mydb“的自定义数据库,必须首先在该数据库环境中创建数据库架构。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60470284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档