Невозможно подключиться к Aurora MySql с помощью основного приложения. net, развернутого на Aws Ecs - PullRequest
0 голосов
/ 18 марта 2020

У меня есть приложение. net core 3.1, и я использую MySql с этим. Для подключения к MySql я использую Pomelo.EntityFrameworkCore. MySql nuget.

Основное приложение My. net развернуто как docker контейнер в AWS ECS, и я использую Aurora MySql RDS для хранения данных. Я предоставил «Публично доступный» доступ к Aurora MySql, и я могу подключиться к БД, используя MySql верстак, а также с моим основным приложением. net, используя localhost. Но когда я развертываю приложение и пытаюсь выполнить какое-либо действие с БД, оно начинает выдавать исключение:

Возникло исключение, которое, вероятно, связано с временным сбоем. Рассмотрите возможность включения устойчивости к временным ошибкам, добавив функцию EnableRetryOnFailure () к вызову «Использовать MySql».

Затем я добавил шаблон повторения, подобный этому:

 services.AddDbContextPool<DataContext>(options =>
      options.UseMySql(Configuration.GetConnectionString("DefaultConnection"), builder =>
      {
          builder.EnableRetryOnFailure(5, TimeSpan.FromSeconds(5), null);
      }
  );

и моя строка подключения выглядит примерно так:

"DefaultConnection": "Server=db-cluster-1-instance-1.cqb2fsjwx78p.us-east-2.rds.amazonaws.com;Database=dbName;User ID=admin;Password=password;port=3306"

После добавления шаблона повтора. Я получаю эту ошибку:

"Превышено максимальное количество повторных попыток (5) при выполнении операций с базой данных с помощью MySqlRetringExecutionStrategy '. См. Внутреннее исключение для самого последнего сбоя."

Так что я подозреваю, это что-то еще. Что я здесь не так делаю? Или это может быть что-то не так на aws стороне

Ответы [ 2 ]

0 голосов
/ 23 марта 2020

Так что проблема была связана с docker изображением, которое я тянул. Я использовал mcr.microsoft.com/dotnet/core/sdk:3.1. Изменение на mcr.microsoft.com/dotnet/core/sdk:3.1-bionic сработало. https://github.com/dotnet/SqlClient/issues/222

0 голосов
/ 21 марта 2020

Добавьте SslMode=None в строку подключения и посмотрите, работает ли подключение (см. Параметры строки подключения MySqlConnector ). Это временное исключение означает, что Pomelo (т.е. MySqlConnector) не удалось подключиться к серверу базы данных.

Так что это связано с проблемами подключения (которые можно исправить, изменив строку подключения или изменив конфигурацию Aurora / firewall) ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...