首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel不会连接到MySQL8 (AWS )

Laravel不会连接到MySQL8 (AWS )
EN

Stack Overflow用户
提问于 2020-07-10 22:48:37
回答 1查看 1.3K关注 0票数 0

我已经更新了Laravel5.5-安装到5.8,现在正在尝试更新MySQL-安装从5.7到8.0.19。Laravel安装是在EC2实例上进行的,与以前的RDS MySQL/Aurora安装一起工作非常好,但是版本并没有削减它。

我们正在一个nginx服务器上运行这个。

首先,我收到一条错误消息

代码语言:javascript
复制
(2/2) PDOException

SQLSTATE[HY000] [2002] Connection refused

试图更改AWS uri并使用ip,却得到了504。

我试着通过MySQL工作台和new PDO('mysql:host=xx-rds-staging-mysql-8.xxxxxxxxxxxx.eu-west-1.rds.amazonaws.com;port=3306;dbname=database', 'username', 'password', [0, 2, 0, false, false, false])访问数据库。它们都从EC2实例中完美地工作起来。

环境档案:

代码语言:javascript
复制
DB_CONNECTION="mysql"
DB_HOST_WRITE="xx-rds-staging-mysql-8.xxxxxxxxxxxx.eu-west-1.rds.amazonaws.com"
DB_HOST_READ="xx-rds-staging-mysql-8.xxxxxxxxxxxx.eu-west-1.rds.amazonaws.com"
DB_PORT_READ_AND_WRITE="3306"
DB_DATABASE="database"
DB_USERNAME="username"
DB_PASSWORD="password"

config/database.php

代码语言:javascript
复制
'mysql' => [
    'read' => [
        'host' => env('DB_HOST_READ', '127.0.0.1'),
    ],
    'write' => [
        'host' => env('DB_HOST_WRITE', '127.0.0.1'),
    ],
    'port' => env('DB_PORT_READ_AND_WRITE', '3306'),
    'driver' => 'mysql',
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'unix_socket' => env('DB_SOCKET', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'strict' => false,
    'engine' => null,
    'sticky' => true,
    'version'     => 8,
    'modes'  => [
        #'ONLY_FULL_GROUP_BY',
        'STRICT_TRANS_TABLES',
        'NO_ZERO_IN_DATE',
        'NO_ZERO_DATE',
        'ERROR_FOR_DIVISION_BY_ZERO',
        'NO_ENGINE_SUBSTITUTION',
    ],
    'options' => [
        PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false,
    ],
],

我已经清除了所有的工匠命令和删除缓存文件夹缓存。

我在这里寻求帮助是垃圾,我从来不确定我需要分享什么信息来证明我的观点。

我的第一个想法是,在拉拉维尔应该有一些设置,我可以交换,以使这个工作,但我不知道它会是什么。

mysql服务器不像laravel应用程序一样运行在同一台机器上,AWS没有提供公共ip,只提供uri。

更奇怪的是,我可以输入php artisan tinker并运行,例如,User::first();,它将从数据库中获取适当的行,而不会出现任何问题。

EN

回答 1

Stack Overflow用户

发布于 2020-07-11 01:16:18

没有详细信息,但您可以查看以下几点:

  1. 验证您的Laravel/php配置或连接文件没有更改,并具有与以前相同的设置。
  2. 是否在RDS中设置了任何特定区域的重新限定?您的测试环境是否符合此要求?
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62843321

复制
相关文章

相似问题

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