Я установил RDS (mysql) с Elastic Beanstalk / EC2 на AWS для своего PHP API.
API доступен через http и https, но, похоже, с подключением к БД возникают проблемы, так как я получаю сообщение об ошибке:
«SQLSTATE [HY000] [2002] Превышено время ожидания соединения», «error_data»:
Что я проверил:
authorized
штат)Экземпляр RDS в авторизованном состоянии с учетом его групп безопасности:
Я могу подключиться к экземпляру БД через свои учетные данные в sequel pro
Я дважды проверил свой эластичный бобовый стебель env
переменные, которые я использовал для успешного входа в sequel pro на сервере
Я проверил журналы сервера и не могу получить более подробную информацию о том, почему я не могу подключиться.
РЕДАКТИРОВАТЬ: добавлены входящие настройки для MYSQL
Мой совет такой:
1- Запишите имя пользователя, пароль и имя хоста, которое является конечной точкой экземпляра RDS, который вы создали.
2- Назначьте группы безопасности и VPC для вашего RDS, которые вы назначите среде в приложении Elastic Beanstalk.
3- В среде EB перейдите на вкладку конфигурации, если среда уже развернута. Если он не развернут, вы можете перейти к параметрам конфигурации, которые находятся внизу страницы, пока вы создаете среду. Затем перейдите к опции программного обеспечения. Иерархия следующая. Среда -> Конфигурации -> Программное обеспечение Там, на странице, у вас будет возможность добавить переменные среды в виде пар ключ-значение, там вы должны добавить следующие теги:
DB_HOST = ваша конечная точка RDS
DB_NAME = Имя вашей БД, которое вы дали во время создания БД
DB_PASS = Ваш пароль, который вы указали при создании БД
DB_PORT = Ваш порт, который вы указали, в большинстве случаев это 3306 для mysql.
DB_USER = Ваше имя пользователя, которое вы дали во время создания БД
Сохраните конфигурации и запустите среду, надеюсь, это решит проблему.