无法使用部署在Aws Ecs上的.net核心应用程序连接到Aurora MySql



我在.net core 3.1中有一个应用程序,我正在使用MySql。要连接到MySql,我使用Pomelo.EntityFrameworkCore.MySql nuget。

我的.net核心应用程序作为docker容器部署在AWS ECS上,我使用Aurora MySql RDS存储数据。我已经授予Aurora MySql的"公共访问"权限,我可以使用MySql工作台连接到数据库,也可以使用localhost连接到我的.net核心应用程序。但当我部署应用程序并尝试执行任何数据库操作时,它就会开始抛出异常:

引发了一个异常,可能是由于瞬态失败考虑通过添加"UseMySql"调用的"EnableRetryOnFailure(("。"。

然后我添加了这样的重试模式:

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(使用"MySqlRetryingExecutionStrategy"执行操作。请参阅内部异常最近的失败。">

所以我怀疑,这是另一回事。我在这里做错了什么?或者可能是aws端出了问题

所以问题与我提取的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

SslMode=None添加到连接字符串中,并查看连接是否有效(请参阅MySqlConnector的连接字符串选项(。暂时的异常只是意味着Pomelo(即MySqlConnector(无法连接到数据库服务器。

因此,这与连接问题有关(可以通过更改连接字符串或更改Aurora/防火墙配置来解决(。

相关内容

  • 没有找到相关文章

最新更新