【问题标题】:MySql.Data can't connect to AWS AuroraMySql.Data 无法连接到 AWS Aurora
【发布时间】: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


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-27
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    • 2021-02-05
    相关资源
    最近更新 更多