我在C#.net核心和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软件包。
答案 0 :(得分:0)
如果其他任何人遇到相同的问题,则MySql.Data包中存在问题。
我怀疑它与这个已知的错误有关: MySql #97448
我的阅读方式是:Aurora群集使用多个IP地址,因此会抛出包含1个以上元素错误的Sequence。 (多个元素是TcpStream()中的IP地址。
我没有看到修复程序,但是我找到了一种解决方法,可以将软件包降级到8.0.16即可解决此问题。