1

我在 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 包。

4

1 回答 1

0

如果其他人有同样的问题,MySql.Data 包中存在问题。

我怀疑它与这个已知的错误有关: MySql #97448

我的阅读方式是这样的:Aurora Cluster 使用多个 IP 地址,所以 Sequence contains more than 1 element 会抛出错误。(多个元素是 TcpStream() 中的 IP 地址。

我没有看到任何修复,但我找到了将包降级到 8.0.16 解决问题的解决方法。

于 2020-02-17T03:42:34.113 回答