我已经更新了Laravel5.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工作台和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"config/database.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,
],
],我已经清除了所有的工匠命令和删除缓存文件夹缓存。
我在这里寻求帮助是垃圾,我从来不确定我需要分享什么信息来证明我的观点。
我的第一个想法是,在拉拉维尔应该有一些设置,我可以交换,以使这个工作,但我不知道它会是什么。
mysql服务器不像laravel应用程序一样运行在同一台机器上,AWS没有提供公共ip,只提供uri。
更奇怪的是,我可以输入php artisan tinker并运行,例如,User::first();,它将从数据库中获取适当的行,而不会出现任何问题。
发布于 2020-07-11 01:16:18
没有详细信息,但您可以查看以下几点:
https://stackoverflow.com/questions/62843321
复制相似问题