如何将 Visual Studio 连接到 Aurora MySQL 数据库?
How to connect Visual Studio to Aurora MySQL DB?
在 Visual Studio 2019 菜单中:工具 -> 连接到数据库 我看到 "MySQL Database" 数据提供程序,但尝试连接到我的 aurora 数据库时出现奇怪的错误:
"Microsoft Visual Studio / Unable to connect to any of the specified MySQL hosts. Sequence contains more than one matching element"
我有基于 MySQL 5.6.10 的 Aurora 数据库。我可以使用最新的 MySQL Workbench 8.0.18 连接到它。我有最新的 "MySQL for Visual Studio 1.2.9" 和 Connector/NET 8.0.18。我使用 .NET Framework 4.7.2。我还可以从 Visual Studio 连接到其他(正常)MySQL 实例,但不能连接到 Aurora DB。
我的最终目标是从亚马逊数据库创建 ADO.NET 实体数据模型,但是由于相同的错误消息而失败。
是否有关于如何将 MySQL Aurora DB 与 .NET Framework(而非 .NET Core)连接的指南?可以从任何 table 下载单个值的极其简单的应用程序指南对我来说意味着向前迈出的重要一步。
好的。我发现它是 MySql.Data 8.0.18 中引入的 Bug #97448。解决方法是通过 IP 地址而不是 xxx.rds.amazonaws.com 地址来定义服务器名称。
这是一个know bug。
仅供参考,mysql.data
(v6.10.9) 的先前版本也受到影响。
作为解决方法,您可以手动将 DNS 值解析为 IP 地址。
在下面的代码示例中,我检查服务器值是否为 IP,然后在该值不是 IP 地址时解析 DNS 名称。
if (IPAddress.TryParse(server, out var ipAddress))
{
// The server value is an IP address, it can be used directly
}
else
{
server = Dns.GetHostEntry(server).AddressList.FirstOrDefault()?.MapToIPv4().ToString();
}
return new MySqlConnectionStringBuilder
{
Server = server
// ...
};
在 Visual Studio 2019 菜单中:工具 -> 连接到数据库 我看到 "MySQL Database" 数据提供程序,但尝试连接到我的 aurora 数据库时出现奇怪的错误:
"Microsoft Visual Studio / Unable to connect to any of the specified MySQL hosts. Sequence contains more than one matching element"
我有基于 MySQL 5.6.10 的 Aurora 数据库。我可以使用最新的 MySQL Workbench 8.0.18 连接到它。我有最新的 "MySQL for Visual Studio 1.2.9" 和 Connector/NET 8.0.18。我使用 .NET Framework 4.7.2。我还可以从 Visual Studio 连接到其他(正常)MySQL 实例,但不能连接到 Aurora DB。
我的最终目标是从亚马逊数据库创建 ADO.NET 实体数据模型,但是由于相同的错误消息而失败。
是否有关于如何将 MySQL Aurora DB 与 .NET Framework(而非 .NET Core)连接的指南?可以从任何 table 下载单个值的极其简单的应用程序指南对我来说意味着向前迈出的重要一步。
好的。我发现它是 MySql.Data 8.0.18 中引入的 Bug #97448。解决方法是通过 IP 地址而不是 xxx.rds.amazonaws.com 地址来定义服务器名称。
这是一个know bug。
仅供参考,mysql.data
(v6.10.9) 的先前版本也受到影响。
作为解决方法,您可以手动将 DNS 值解析为 IP 地址。
在下面的代码示例中,我检查服务器值是否为 IP,然后在该值不是 IP 地址时解析 DNS 名称。
if (IPAddress.TryParse(server, out var ipAddress))
{
// The server value is an IP address, it can be used directly
}
else
{
server = Dns.GetHostEntry(server).AddressList.FirstOrDefault()?.MapToIPv4().ToString();
}
return new MySqlConnectionStringBuilder
{
Server = server
// ...
};