繁体   English   中英

Laravel 不会连接到 MySQL8 (AWS RDS)

[英]Laravel won't connect to MySQL8 (AWS RDS)

我已将 Laravel 5.5 安装更新到 5.8,现在正尝试将 MySQL 安装从 5.7 更新到 8.0.19。 Laravel 安装在 EC2 实例上,与以前的 RDS MySQL/Aurora 安装配合得很好,但版本没有削减它。

我们在 nginx 服务器上运行它。

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

(2/2) PDOException

SQLSTATE[HY000] [2002] Connection refused

尝试更改 AWS uri 并改用 ip,并改用 504。

我尝试通过 MySQL Workbench 和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 实例中完美运行。

环境文件:

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"

配置/数据库.php

'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,
    ],
],

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

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

我的第一个想法是 Laravel 中应该有一些设置,我可以交换它来完成这项工作,但我不知道它可能是什么。

mysql-server 与 laravel-application 不在同一台机器上运行,AWS 没有提供公共 ip,只是 uri。

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

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

  1. 验证您的 Laravel/php 配置或连接文件没有更改并且具有与以前相同的设置。
  2. 您是否在 RDS 中设置了任何特定于区域的限制? 您的测试环境是否符合要求?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM