【发布时间】:2020-05-30 21:00:35
【问题描述】:
我在 C# .net core 和 AWS Aurora Serverless (MySql) 之间有一个非常奇怪的连接问题。我有一个非常简单的 Web API 用于测试。我的一个端点很容易获得一个表的第一行:
string cnString = "myConnectionString";
string returnData = "";
using (MySqlConnection cnData = new MySqlConnection(cnString))
{
using (MySqlCommand cmdData = new MySqlCommand("SELECT userName FROM users LIMIT 1", cnData))
{
await cnData.OpenAsync();
await cmdData.ExecuteScalarAsync();
returnData = (string)cmdData.ExecuteScalar();
}
}
return Ok(returnData);
我已经安装了 MySql.Data NuGet 包。当我部署包时,我收到一个错误:无法连接到任何指定的 MySQL 主机。 (序列包含多个匹配元素)
如果我卸载 MySql.Data 包并安装 MySqlConnector 包,则没有错误,一切正常。代码或连接字符串没有变化。我唯一改变的是 NuGet 包。
我认为这无关紧要,但我的应用程序已部署到 Amazon Linux EC2 实例。
有谁知道为什么 MySql.Data 包不起作用?对于我的部署,我需要那个包,但我不能使用 MySqlConnector 包。
【问题讨论】:
-
您在同一个环境中测试了这两个包?即在您的本地机器和 ec2 上? 100% 确定这不是安全组问题?
-
两个包,相同的环境,相同的代码,相同的服务器,相同的本地机器。基本上,它使用一个包而不是实际的 Oracle 包运行。
标签: .net-core amazon-aurora mysql.data aws-aurora-serverless