Я обновил установку 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.
I пытался получить доступ к базе данных через 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.
Env-файл:
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 / база данных. 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,
],
],
Я очистил кеш всеми командами-мастерами и удалив папку с кешем.
Я rubbi sh при обращении за помощью , я никогда не уверен, какой информацией мне нужно поделиться, чтобы изложить мою версию. что это может быть.
mysql -сервер не работает на той же машине, что и * 1 040 * -приложение и AWS не предлагает publi c ip, только uri.
Что делает его еще более странным, так это то, что я могу ввести php artisan tinker
и запустить, например, User::first();
и он без проблем извлечет соответствующую строку из базы данных.